微服務(wù)架構(gòu)的關(guān)鍵思想是功能分解。這意味著您無需開發(fā)單個(gè)大型應(yīng)用程序,就可以將您的應(yīng)用程序結(jié)構(gòu)分解為一組邏輯服務(wù)。
應(yīng)用程序的體系結(jié)構(gòu)很重要,因?yàn)樗鼪Q定了服務(wù)的質(zhì)量
應(yīng)用程序的體系結(jié)構(gòu)是將其分解為組件以及這些組件之間的關(guān)系。
分解很重要,因?yàn)樗兄趫F(tuán)隊(duì)之間的工作和知識分配,并提供應(yīng)用程序整體工作的清晰度。
軟件架構(gòu)的4 + 1視圖模型
它定義了軟件體系結(jié)構(gòu)的四個(gè)視圖
邏輯視圖
開發(fā)視圖 /實(shí)施意見
進(jìn)程視圖
物理視圖
4 + 1視圖模型中的+1代表動畫視圖,并描述特定視圖中的各個(gè)組件如何協(xié)同工作以處理請求。
分層架構(gòu)
分層體系結(jié)構(gòu)將軟件組件分層組織。層可以依賴于其下面的任何層。
流行的三層架構(gòu)是分層架構(gòu)
分層架構(gòu)的缺點(diǎn)
基于建筑風(fēng)格的整體
整體架構(gòu)可以定義為一種架構(gòu)樣式,該架構(gòu)樣式將實(shí)現(xiàn) 視圖表示為單個(gè)組件:單個(gè)可執(zhí)行文件或可部署文件。
基于架構(gòu)風(fēng)格的微服務(wù)
架構(gòu)風(fēng)格的微服務(wù)架構(gòu)表示一個(gè)具有一組多個(gè)組件的實(shí)現(xiàn)視圖:可執(zhí)行文件和Wars。
組件是服務(wù),關(guān)系是通過通信協(xié)議進(jìn)行的。盡管通常實(shí)現(xiàn)六邊形體系結(jié)構(gòu),但是各個(gè)服務(wù)可以自由選擇其體系結(jié)構(gòu)。
微服務(wù)架構(gòu)服務(wù)的關(guān)鍵約束應(yīng)該松散耦合。
服務(wù)是實(shí)現(xiàn)某些有用功能的獨(dú)立,可獨(dú)立部署的組件。
服務(wù)通常提供兩類動作
服務(wù)還會發(fā)布事件。
任何兩個(gè)服務(wù)將僅通過API進(jìn)行通信。API隱藏了服務(wù)的內(nèi)部實(shí)現(xiàn)。兩個(gè)服務(wù)不共享同一數(shù)據(jù)庫以提供運(yùn)行時(shí)隔離,因此一個(gè)服務(wù)無法持有將阻止另一服務(wù)的鎖。
定義應(yīng)用程序的微服務(wù)架構(gòu)
步驟如下:
將系統(tǒng)視為黑匣子?,F(xiàn)在確定所有系統(tǒng)操作。
系統(tǒng)操作是應(yīng)用程序必須處理的請求的抽象。它可以是命令,也可以是查詢。
它涉及以下操作:
有兩種方法可以識別系統(tǒng)中的服務(wù):
單一責(zé)任原則
一個(gè)類只有一個(gè)改變的理由。(羅伯特·馬丁(Robert C.Martin))
開放關(guān)閉原則
包中的類應(yīng)針對相同的更改一起封閉。影響軟件包的更改會影響該軟件包中的所有類。(羅伯·馬?。≧ober C.Martin))
服務(wù)API有兩類
聯(lián)系客服