《微服務設計》閱讀筆記(三)如何建模服務

《微服務設計》,Building Microservices,作者Sam Newman,譯者崔力強、張駿,人民郵電出版社,2016年。

筆記中有些內容直接引用原書。

================================================================

第三章 如何建模服務

好的服務是松耦合和高內聚的。這兩個詞在很多地方都用到了,那麼在微服務中分別指什麼呢?松耦合指的是服務之間耦合度低,修改一個服務不用導致另一個服務跟著修改。高內聚指的是服務內部,相關的行為都聚集在一個服務里,而不是分散在不同服務中,這樣需要修改一個行為時,只要修改一個微服務即可。

限界上下文(bounded context)來自Eric Evans的《領域驅動設計》一書,用來對現實世界領域進行建模。作者比較認同的對該詞比較好的定義是「一個由顯式邊界限定的特定職責」。顯示邊界是外部與它交互的必經之路。

要能找到限界上下文之間的共享模型,其內部和外部的表現形式往往是不一樣的。應該共享特定的模型,而不是共享表示,從而避免緊耦合。

單塊系統中的模塊可以較好地轉化為微服務。不要過早地劃分微服務,要等到服務邊界清晰以後再進行。

對微服務建模時,要首先考慮其業務功能,再考慮其數據。如果只考慮數據,則常常建模為CRUD這種貧血服務。

根據業務邊界,結合組織結構,由粗粒度到細粒度地逐步劃分限界上下文。

BrianZhang:《微服務設計》閱讀筆記(一)微服務zhuanlan.zhihu.com圖標BrianZhang:《微服務設計》閱讀筆記(二)演化式架構師zhuanlan.zhihu.com圖標BrianZhang:《微服務設計》閱讀筆記(四)集成zhuanlan.zhihu.com圖標BrianZhang:《微服務設計》閱讀筆記(五)分解單塊系統zhuanlan.zhihu.com圖標BrianZhang:《微服務設計》閱讀筆記(六)部署zhuanlan.zhihu.com圖標BrianZhang:《微服務設計》閱讀筆記(七)測試zhuanlan.zhihu.com圖標BrianZhang:《微服務設計》閱讀筆記(八) 監控zhuanlan.zhihu.com圖標BrianZhang:《微服務設計》閱讀筆記(九)安全zhuanlan.zhihu.com圖標BrianZhang:《微服務設計》閱讀筆記(十)康威定律和系統設計zhuanlan.zhihu.com圖標BrianZhang:《微服務設計》閱讀筆記(十一)規模化微服務zhuanlan.zhihu.com圖標BrianZhang:《微服務設計》閱讀筆記(十二完結篇)總結zhuanlan.zhihu.com圖標軟體開發之路zhuanlan.zhihu.com圖標
推薦閱讀:

《微服務設計》閱讀筆記(十)康威定律和系統設計
哈希演算法集合類庫HashLib
《微服務設計》閱讀筆記(五)分解單塊系統
排列組合KwCombinatorics
並行模式庫PPL應用實戰(一):使用task類創建並行任務

TAG:微服務架構 | 軟體開發 |