微服務(wù)架構(gòu)采用Scale Cube方法設(shè)計(jì)應(yīng)用架構(gòu),將應(yīng)用服務(wù)按功能拆分成一組相互協(xié)作的服務(wù)。每個(gè)服務(wù)負(fù)責(zé)一組特定、相關(guān)的功能。每個(gè)服務(wù)可以有自己獨(dú)立的數(shù)據(jù)庫,從而保證與其他服務(wù)解耦。
微服務(wù)優(yōu)點(diǎn)
1、通過分解巨大單體式應(yīng)用為多個(gè)服務(wù)方法解決了復(fù)雜性問題,每個(gè)微服務(wù)相對較小
2、每個(gè)單體應(yīng)用不局限于固定的技術(shù)棧,開發(fā)者可以自由選擇開發(fā)技術(shù),提供API服務(wù)。
3、每個(gè)微服務(wù)獨(dú)立的開發(fā),部署
4、單一職責(zé)功能,每個(gè)服務(wù)都很簡單,只關(guān)注于一個(gè)業(yè)務(wù)功能
5、易于規(guī)模化開發(fā),多個(gè)開發(fā)團(tuán)隊(duì)可以并行開發(fā),每個(gè)團(tuán)隊(duì)負(fù)責(zé)一項(xiàng)服務(wù)
6、改善故障隔離。一個(gè)服務(wù)宕機(jī)不會(huì)影響其他的服務(wù)
微服務(wù)缺點(diǎn):
1.開發(fā)者需要應(yīng)對創(chuàng)建分布式系統(tǒng)所產(chǎn)生的額外的復(fù)雜因素
l 目前的IDE主要面對的是單體工程程序,無法顯示支持分布式應(yīng)用的開發(fā)
l 測試工作更加困難
l 需要采用服務(wù)間的通訊機(jī)制
l 很難在不采用分布式事務(wù)的情況下跨服務(wù)實(shí)現(xiàn)功能
l 跨服務(wù)實(shí)現(xiàn)要求功能要求團(tuán)隊(duì)之間的緊密協(xié)作
2.部署復(fù)雜
3.內(nèi)存占用量更高