為什么說優(yōu)秀的微服務設計一定少不了 DDD?

- 前言 -

- 微服務和 DDD 的關系 -

- 微服務的缺陷 -
服務并沒有解決復雜系統(tǒng)如何應對需求變化這個問題,甚至還加劇了這個問題。 當一個需求變化了,需要花大量的精力去識別這個變化影響到了哪些微服務,這些服務的多個團隊之間,需要通過無休止的扯皮去決定哪個服務多一些,哪些服務少改一些。 然后測試團隊還需要做昂貴的這種聯(lián)調(diào)測試。 即便如此呢,開發(fā)團隊依然不放心,還要通過一系列的開關控制,小心翼翼的去做切流,去做灰度發(fā)布。

- DDD 的功用 -
功能緯度; 質(zhì)量緯度,比如性能、可用性; 工程緯度。


- 拆分案例 -
關于領域
商品子域; 訂單子域; 庫存子域等等。
劃分系統(tǒng)內(nèi)部架構邊界
邊界清晰的好處
資源傾斜; 使用彈力設計模式:比如重試,熔斷,降級; 使用特殊技術:比如Go語言; 具備獨立代碼庫:有獨立團隊和運維人員,和A和B的運行期做到隔離不互相影響。
聚合根用來保證內(nèi)部實體規(guī)則的正確性和數(shù)據(jù)的一致性; 外部對象只能通過ID來引用聚合根,不能引用聚合根內(nèi)部的實體; 聚合根之間不能共享一個數(shù)據(jù)庫事務,它們之間的數(shù)據(jù)一致性需要通過最終的一致性來保障。
來源:
https://www.cnblogs.com/jackyfei/p/12089123.html

評論
圖片
表情
