微服務(wù)的概念及優(yōu)缺點(diǎn)

什么是微服務(wù)架構(gòu)?



開(kāi)發(fā)簡(jiǎn)單直接,集中式管理, 基本不會(huì)重復(fù)開(kāi)發(fā)
功能都在本地,沒(méi)有分布式的管理開(kāi)銷(xiāo)和調(diào)用開(kāi)銷(xiāo)
開(kāi)發(fā)效率低:所有的開(kāi)發(fā)在一個(gè)項(xiàng)目改代碼,遞交代碼相互等待,代碼沖突不斷
代碼維護(hù)難:代碼功能耦合在一起,新人不知道何從下手
部署不靈活:構(gòu)建時(shí)間長(zhǎng),任何小修改必須重新構(gòu)建整個(gè)項(xiàng)目,這個(gè)過(guò)程往往很長(zhǎng)
穩(wěn)定性不高:一個(gè)微不足道的小問(wèn)題,可以導(dǎo)致整個(gè)應(yīng)用掛掉
擴(kuò)展性不夠:無(wú)法滿(mǎn)足高并發(fā)情況下的業(yè)務(wù)需求

微服務(wù)是松藕合的,無(wú)論是在開(kāi)發(fā)階段或部署階段都是獨(dú)立的。
能夠快速響應(yīng), 局部修改容易, 一個(gè)服務(wù)出現(xiàn)問(wèn)題不會(huì)影響整個(gè)應(yīng)用。
易于和第三方應(yīng)用系統(tǒng)集成, 支持使用不同的語(yǔ)言開(kāi)發(fā), 允許你利用融合最新技術(shù)。
每個(gè)微服務(wù)都很小,足夠內(nèi)聚,足夠小,代碼容易理解。團(tuán)隊(duì)能夠更關(guān)注自己的工作成果, 聚焦指定的業(yè)務(wù)功能或業(yè)務(wù)需求。
開(kāi)發(fā)簡(jiǎn)單、開(kāi)發(fā)效率提高,一個(gè)服務(wù)可能就是專(zhuān)一的只干一件事, 能夠被小團(tuán)隊(duì)單獨(dú)開(kāi)發(fā),這個(gè)小團(tuán)隊(duì)可以是 2 到 5 人的開(kāi)發(fā)人員組成。
微服務(wù)架構(gòu)帶來(lái)過(guò)多的運(yùn)維操作, 可能需要團(tuán)隊(duì)具備一定的DevOps技巧。
分布式系統(tǒng)可能復(fù)雜難以管理。因?yàn)榉植疾渴鸶檰?wèn)題難。當(dāng)服務(wù)數(shù)量增加,管理復(fù)雜性增加。

細(xì)粒度的服務(wù)分解,服務(wù)粒度要小,而每個(gè)服務(wù)是針對(duì)一個(gè)單一職責(zé)的業(yè)務(wù)能力的封裝,專(zhuān)注做好一件事情。
獨(dú)立部署運(yùn)行和擴(kuò)展,每個(gè)服務(wù)能夠獨(dú)立被部署并運(yùn)行在一個(gè)進(jìn)程內(nèi)。這種運(yùn)行和部署方式能夠賦予系統(tǒng)靈活的代碼組織方式和發(fā)布節(jié)奏,使得快速交付和應(yīng)對(duì)變化成為可能。
獨(dú)立開(kāi)發(fā)和演化,技術(shù)選型靈活,不受遺留系統(tǒng)技術(shù)約束。合適的業(yè)務(wù)問(wèn)題選擇合適的技術(shù)可以獨(dú)立演化。服務(wù)與服務(wù)之間采取與語(yǔ)言無(wú)關(guān)的API進(jìn)行集成。相對(duì)單體架構(gòu),微服務(wù)架構(gòu)是更面向業(yè)務(wù)創(chuàng)新的一種架構(gòu)模式。
獨(dú)立團(tuán)隊(duì)和自治,團(tuán)隊(duì)對(duì)服務(wù)的整個(gè)生命周期負(fù)責(zé),工作在獨(dú)立的上下文中,自己決策自己治理,而不需要統(tǒng)一的指揮中心。團(tuán)隊(duì)和團(tuán)隊(duì)之間通過(guò)松散的社區(qū)部落進(jìn)行銜接。


日志和審計(jì),主要是日志的匯總,分類(lèi)和查詢(xún)
監(jiān)控和告警,主要是監(jiān)控每個(gè)服務(wù)的狀態(tài),必要時(shí)產(chǎn)生告警
消息總線(xiàn),輕量級(jí)的MQ或HTTP
注冊(cè)發(fā)現(xiàn)
負(fù)載均衡
部署和升級(jí)
事件調(diào)度機(jī)制
認(rèn)證和鑒權(quán)
多語(yǔ)言支持, 是否支持多種編程語(yǔ)言
統(tǒng)一服務(wù)構(gòu)建和打包
統(tǒng)一服務(wù)測(cè)試
統(tǒng)一配置文件管理
服務(wù)依賴(lài)關(guān)系管理
問(wèn)題跟蹤調(diào)試框架
灰度發(fā)布
藍(lán)綠部署
資源管理,如:底層的容器, 虛擬機(jī), 物理機(jī)和網(wǎng)絡(luò)管理




—————END—————
推薦閱讀
干貨|如何步入Service Mesh微服務(wù)架構(gòu)時(shí)代
實(shí)戰(zhàn)|Service Mesh微服務(wù)架構(gòu)實(shí)現(xiàn)服務(wù)間gRPC通信
再見(jiàn)Nacos,我要玩Service Mesh了!
