小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

微服務(wù)分解策略

 菌心說(shuō) 2021-04-16
微服務(wù)分解策略

微服務(wù)架構(gòu)的關(guān)鍵思想是功能分解。這意味著您無(wú)需開(kāi)發(fā)單個(gè)大型應(yīng)用程序,就可以將您的應(yīng)用程序結(jié)構(gòu)分解為一組邏輯服務(wù)。

應(yīng)用程序的體系結(jié)構(gòu)很重要,因?yàn)樗鼪Q定了服務(wù)的質(zhì)量

  • 傳統(tǒng)目標(biāo):可伸縮性,可靠性和安全性。
  • 其他現(xiàn)代目標(biāo):快速,安全地提供服務(wù)。可維護(hù)性,可測(cè)試性和可部署性。

軟件構(gòu)架

應(yīng)用程序的體系結(jié)構(gòu)是將其分解為組件以及這些組件之間的關(guān)系。

分解很重要,因?yàn)樗兄趫F(tuán)隊(duì)之間的工作和知識(shí)分配,并提供應(yīng)用程序整體工作的清晰度。

軟件架構(gòu)的4 + 1視圖模型

微服務(wù)分解策略
微服務(wù)分解策略

它定義了軟件體系結(jié)構(gòu)的四個(gè)視圖

邏輯視圖

  • 由開(kāi)發(fā)人員創(chuàng)建
  • 組件:類(lèi)和包
  • 關(guān)系:他們之間的關(guān)系

開(kāi)發(fā)視圖 /實(shí)施意見(jiàn)

  • 組件:模塊(JAR)和可部署/可執(zhí)行(WAR)
  • 關(guān)系:依賴(lài)關(guān)系

進(jìn)程視圖

  • 組成部分:進(jìn)程
  • 關(guān)系:IPC

物理視圖

  • 組件:機(jī)器和流程(節(jié)點(diǎn))
  • 關(guān)系:網(wǎng)絡(luò)

4 + 1視圖模型中的+1代表動(dòng)畫(huà)視圖,并描述特定視圖中的各個(gè)組件如何協(xié)同工作以處理請(qǐng)求。

架構(gòu)風(fēng)格

分層架構(gòu)

分層體系結(jié)構(gòu)將軟件組件分層組織。層可以依賴(lài)于其下面的任何層。

流行的三層架構(gòu)是分層架構(gòu)

微服務(wù)分解策略
微服務(wù)分解策略

分層架構(gòu)的缺點(diǎn)

  • 依賴(lài)性沒(méi)有很好地表示。
  • 并不表示架構(gòu)可以具有多個(gè)表示層。
  • 并不代表該體系結(jié)構(gòu)可以具有多個(gè)數(shù)據(jù)存儲(chǔ)的事實(shí)。
  • 應(yīng)用程序?qū)优c數(shù)據(jù)層緊密耦合,因此在沒(méi)有數(shù)據(jù)庫(kù)的情況下很難測(cè)試應(yīng)用程序邏輯。

六角形架構(gòu)

基于建筑風(fēng)格的整體

整體架構(gòu)可以定義為一種架構(gòu)樣式,該架構(gòu)樣式將實(shí)現(xiàn) 視圖表示為單個(gè)組件:?jiǎn)蝹€(gè)可執(zhí)行文件或可部署文件。

基于架構(gòu)風(fēng)格的微服務(wù)

架構(gòu)風(fēng)格的微服務(wù)架構(gòu)表示一個(gè)具有一組多個(gè)組件的實(shí)現(xiàn)視圖:可執(zhí)行文件和Wars。

組件是服務(wù),關(guān)系是通過(guò)通信協(xié)議進(jìn)行的。盡管通常實(shí)現(xiàn)六邊形體系結(jié)構(gòu),但是各個(gè)服務(wù)可以自由選擇其體系結(jié)構(gòu)。

微服務(wù)分解策略

微服務(wù)架構(gòu)服務(wù)的關(guān)鍵約束應(yīng)該松散耦合。

服務(wù)

服務(wù)是實(shí)現(xiàn)某些有用功能的獨(dú)立,可獨(dú)立部署的組件。

服務(wù)通常提供兩類(lèi)動(dòng)作

  • 命令:執(zhí)行操作并更新數(shù)據(jù)。
  • 查詢(xún):獲取數(shù)據(jù)

服務(wù)還會(huì)發(fā)布事件。

松耦合

任何兩個(gè)服務(wù)將僅通過(guò)API進(jìn)行通信。API隱藏了服務(wù)的內(nèi)部實(shí)現(xiàn)。兩個(gè)服務(wù)不共享同一數(shù)據(jù)庫(kù)以提供運(yùn)行時(shí)隔離,因此一個(gè)服務(wù)無(wú)法持有將阻止另一服務(wù)的鎖。

定義應(yīng)用程序的微服務(wù)架構(gòu)

步驟如下:

  • 識(shí)別系統(tǒng)操作。
  • 身份服務(wù)
  • 為每個(gè)服務(wù)及其之間的交互定義API

識(shí)別系統(tǒng)操作

將系統(tǒng)視為黑匣子?,F(xiàn)在確定所有系統(tǒng)操作。

系統(tǒng)操作是應(yīng)用程序必須處理的請(qǐng)求的抽象。它可以是命令,也可以是查詢(xún)。

它涉及以下操作:

  • 收集系統(tǒng)的需求。
  • 確定通常從需求中的名詞派生的域模型。
  • 確定通常從需求中的動(dòng)詞派生的系統(tǒng)操作。
  • 從UI和UX的角度看,將在系統(tǒng)上執(zhí)行哪些操作。

定義服務(wù)

有兩種方法可以識(shí)別系統(tǒng)中的服務(wù):

  • 按業(yè)務(wù)能力分解
  • 按域驅(qū)動(dòng)器設(shè)計(jì)分解

分解原理

單一責(zé)任原則

一個(gè)類(lèi)只有一個(gè)改變的理由。(羅伯特·馬?。≧obert C.Martin))

開(kāi)放關(guān)閉原則

包中的類(lèi)應(yīng)針對(duì)相同的更改一起封閉。影響軟件包的更改會(huì)影響該軟件包中的所有類(lèi)。(羅伯·馬?。≧ober C.Martin))

將應(yīng)用程序分解為服務(wù)的障礙

  • 網(wǎng)絡(luò)延遲(高往返)
  • 由于同步通信,降低了應(yīng)用程序的可用性。
  • 維護(hù)各服務(wù)之間的數(shù)據(jù)一致性
  • 獲取數(shù)據(jù)庫(kù)的一致視圖。
  • 上帝類(lèi)(在所有服務(wù)中都使用的班)

定義服務(wù)API

服務(wù)API有兩類(lèi)

  • 暴露給外部客戶(hù)端。
  • 用于內(nèi)部服務(wù)協(xié)作。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多