日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

微服務(wù)分解策略

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

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

應(yīng)用程序的體系結(jié)構(gòu)很重要,因為它決定了服務(wù)的質(zhì)量

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

軟件構(gòu)架

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

分解很重要,因為它有助于團隊之間的工作和知識分配,并提供應(yīng)用程序整體工作的清晰度。

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

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

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

邏輯視圖

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

開發(fā)視圖 /實施意見

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

進程視圖

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

物理視圖

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

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

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

分層架構(gòu)

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

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

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

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

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

六角形架構(gòu)

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

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

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

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

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

微服務(wù)分解策略

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

服務(wù)

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

服務(wù)通常提供兩類動作

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

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

松耦合

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

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

步驟如下:

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

識別系統(tǒng)操作

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

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

它涉及以下操作:

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

定義服務(wù)

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

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

分解原理

單一責(zé)任原則

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

開放關(guān)閉原則

包中的類應(yīng)針對相同的更改一起封閉。影響軟件包的更改會影響該軟件包中的所有類。(羅伯·馬丁(Rober C.Martin))

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

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

定義服務(wù)API

服務(wù)API有兩類

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

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多