什么是微服務(wù)拌消?
微服務(wù)架構(gòu)并沒有很精確的定義挑豌,微服務(wù)是一種軟件架構(gòu)風(fēng)格,一個(gè)復(fù)雜大型軟件應(yīng)該是由一個(gè)或多個(gè)的微服務(wù)組成的墩崩,每個(gè)服務(wù)之間應(yīng)該是松耦合的氓英,每個(gè)微服務(wù)僅需關(guān)注并完成一個(gè)任務(wù)或業(yè)務(wù)。
為什么使用微服務(wù)鹦筹?
因?yàn)樵趥鹘y(tǒng)的應(yīng)用軟件初期铝阐,雖然構(gòu)建單塊軟件架構(gòu)是最容易的。但在一個(gè)擁有數(shù)百個(gè)功能的單塊架構(gòu)軟件 部署后盛龄,排故饰迹、升級(jí)迭代、擴(kuò)展將是一場(chǎng)接一場(chǎng)的噩夢(mèng)余舶。因?yàn)槭芟抻诔跗趦H有的單塊系統(tǒng)內(nèi)部耦合性啊鸭,再向該系統(tǒng)添加新功能將是艱難的。
單塊軟件架構(gòu)的缺點(diǎn):
· 維護(hù)難:維護(hù)匿值、升級(jí)迭代赠制、擴(kuò)展困難。修改挟憔、添加功能很有可能需要重新部署整個(gè)應(yīng)用钟些。
· 穩(wěn)定性差:其中一個(gè)不穩(wěn)定的功能很有可能拖慢整個(gè)應(yīng)用纲酗。
· 創(chuàng)新難:使用新技術(shù)和框架異常困難邑跪,比較局限于當(dāng)前系統(tǒng)本身現(xiàn)有的框架與技術(shù)浪南。
而微服務(wù)解決了以上問題窟哺。
· 維護(hù)容易:添加/修改某個(gè)服務(wù),僅需獨(dú)立部署碌更,擴(kuò)展靈活溉跃,而不需要整個(gè)架構(gòu)重新部署引润。
· 穩(wěn)定性好:由于每個(gè)服務(wù)的獨(dú)立運(yùn)行和部署,并不會(huì)干擾其他服務(wù)正常運(yùn)行宗弯。
· 創(chuàng)新簡(jiǎn)單:微服務(wù)按業(yè)務(wù)組織脯燃,每個(gè)服務(wù)可以使用自己獨(dú)立的技術(shù)或框架,服務(wù)之間通過REST API相互通信蒙保。
SOA與微服務(wù)有什么區(qū)別辕棚?
雖然SOA(面向服務(wù)架構(gòu))中的服務(wù)是獨(dú)立于彼此的,但是它與其他所有服務(wù)運(yùn)行在同一時(shí)間里邓厕,且高度依賴于ESB(企業(yè)服務(wù)總線)逝嚎。微服務(wù)應(yīng)該是分布式的、去中心的邑狸、松耦合的懈糯、獨(dú)立于彼此的。
微服務(wù)有什么缺點(diǎn)单雾?
網(wǎng)絡(luò)延遲:因?yàn)榉植际降奶匦裕鱾€(gè)服務(wù)之間通過接口通信她紫,會(huì)有無可避免的網(wǎng)絡(luò)延遲硅堆。
運(yùn)維成本:多個(gè)服務(wù)意味著更多的維護(hù)工作。