久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

微服務架構(gòu)(二): 如何把應用分解成多個服務

 云端素館 2018-09-03

一,、上下文


你正在開發(fā)一個大型的復雜項目,并且你想要使用微服務架構(gòu),。微服務架構(gòu)把應用的結(jié)構(gòu)變成了一系列松耦合的服務,。使用微服務架構(gòu)的目的是通過持續(xù)交付、持續(xù)部署來加速軟件開發(fā)的速度,。



微服務架構(gòu)用兩種方式來達到目的:

  1. 簡化測試,,使得組件可以獨立部署
  2. 把工程師團隊分成一個個小的、自主的團隊(6到10人),,每個團隊負責一個或多個服務

這些好處不是自動就能得到的,,相反的,它需要我們對服務有一個仔細的劃分,。

一個服務必須足夠小,,使得可以被一個小的團隊開發(fā)和測試。從面向?qū)ο笤O計那里學到的一個有用的方法是單一職責原則,。

應用也要被一種合適的方法拆分,,從而大多數(shù)新的和修改的需求只影響到單個service,。因為影響到多個service的改動需要多個團隊之間的合作,這會拖慢開發(fā)的速度,。另一個面向?qū)ο笤O計的有效原則是共同封閉原則,,它是說,因為同一個原因修改的類應該在同一個包中,。這種思想在設計服務時也同樣有效:每個變化應該只影響一個service,。


二、問題和強制條件


問題:

如何把應用拆解成服務,?

強制條件:

  • 架構(gòu)應該穩(wěn)定
  • 一個服務應該實現(xiàn)一個強相關的方法的小集合
  • 服務必須遵從共同封閉原則
  • 服務應該松耦合:一個服務的實現(xiàn)的變化不影響調(diào)用它的API的客戶端
  • 服務應該是可測試的
  • 服務應該足夠小,,可以被6到10人的小團隊開發(fā)
  • 每個團隊應該是自主的。一個團隊可以開發(fā)和部署他們的服務,,而只需要和別的團隊有一些最小的合作

三、解決方案


1.根據(jù)業(yè)務能力拆分


業(yè)務能力是業(yè)務架構(gòu)模型中的一個概念,。業(yè)務模型經(jīng)常對應于一個業(yè)務對象,,比如說:訂單管理負責訂單,客戶管理負責客戶,。

業(yè)務能力經(jīng)常組織成一個多層等級,。比如說,一個企業(yè)應用也許有頂級的分類,,如產(chǎn)品開發(fā),、產(chǎn)品交付、需求挖掘等,。


示例

一個在線商城的業(yè)務能力包括:

  • 產(chǎn)品目錄管理
  • 存貨管理
  • 訂單管理
  • 發(fā)貨管理

對應的微服務架構(gòu)會有一些服務對應于這些業(yè)務能力:



結(jié)果

這種模式有以下好處:

  • 架構(gòu)穩(wěn)定,,因為業(yè)務能力相對比較穩(wěn)定
  • 開發(fā)團隊是自主的,圍繞著交付業(yè)務價值而不是技術特性來組織
  • 服務之間共同合作,,松耦合

問題

有以下問題需要解決:

  • 如何定義業(yè)務能力,?定義業(yè)務能力和服務需要對業(yè)務有一個好的理解, 需要對組織的目標,、結(jié)構(gòu),、業(yè)務流程做一個分析。定義業(yè)務能力的好的開始點是:

    • 組織結(jié)構(gòu): 一個組織內(nèi)的不同組對應于業(yè)務能力或者業(yè)務能力組
    • 高層領域模型: 業(yè)務能力經(jīng)常對應于領域?qū)ο?/li>


2. 根據(jù)子域拆分

定義對應于領域驅(qū)動設計(DDD)的子域的服務,。 一個領域由多個子域組成,。每個子域?qū)藰I(yè)務的不同組成部分。
子域可以被這樣分類:

  • 核心: 業(yè)務的核心區(qū)分點,,應用的最有價值的部分
  • 支持: 與業(yè)務是做什么的相關,,但不是主要區(qū)分點。這個可以自己做或者外包,。
  • 通用: 不特定于業(yè)務,,理想情況下使用現(xiàn)成的軟件來實現(xiàn)

示例

一個在線商城的子域包括

  • 商品目錄
  • 存貨管理
  • 訂單管理
  • 發(fā)貨管理

對應的微服務架構(gòu)會有一些服務對應于這些子域,。




結(jié)果

這種模式有以下這些好處:(與上面的方法一樣的)


  • 架構(gòu)穩(wěn)定,因為業(yè)務能力相對比較穩(wěn)定
  • 開發(fā)團隊是自主的,,圍繞著交付業(yè)務價值而不是技術特性來組織
  • 服務之間共同合作,,松耦合

問題

有以下問題需要解決:

  • 如何定義子域?定義子域和服務需要對業(yè)務有一個好的理解,, 需要對組織的目標,、結(jié)構(gòu)、業(yè)務流程做一個分析,。定義子域的好的開始點是:

    • 組織結(jié)構(gòu): 一個組織內(nèi)的不同組對應于業(yè)務能力或者業(yè)務能力組
    • 高層領域模型: 業(yè)務能力經(jīng)常對應于領域?qū)ο?br>

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多