《微服務設計》閱讀筆記(三)如何建模服務
03-06
《微服務設計》,Building Microservices,作者Sam Newman,譯者崔力強、張駿,人民郵電出版社,2016年。
筆記中有些內容直接引用原書。
================================================================
第三章 如何建模服務
好的服務是松耦合和高內聚的。這兩個詞在很多地方都用到了,那麼在微服務中分別指什麼呢?松耦合指的是服務之間耦合度低,修改一個服務不用導致另一個服務跟著修改。高內聚指的是服務內部,相關的行為都聚集在一個服務里,而不是分散在不同服務中,這樣需要修改一個行為時,只要修改一個微服務即可。
限界上下文(bounded context)來自Eric Evans的《領域驅動設計》一書,用來對現實世界領域進行建模。作者比較認同的對該詞比較好的定義是「一個由顯式邊界限定的特定職責」。顯示邊界是外部與它交互的必經之路。
要能找到限界上下文之間的共享模型,其內部和外部的表現形式往往是不一樣的。應該共享特定的模型,而不是共享表示,從而避免緊耦合。
單塊系統中的模塊可以較好地轉化為微服務。不要過早地劃分微服務,要等到服務邊界清晰以後再進行。
對微服務建模時,要首先考慮其業務功能,再考慮其數據。如果只考慮數據,則常常建模為CRUD這種貧血服務。
根據業務邊界,結合組織結構,由粗粒度到細粒度地逐步劃分限界上下文。
BrianZhang:《微服務設計》閱讀筆記(一)微服務BrianZhang:《微服務設計》閱讀筆記(二)演化式架構師BrianZhang:《微服務設計》閱讀筆記(四)集成BrianZhang:《微服務設計》閱讀筆記(五)分解單塊系統BrianZhang:《微服務設計》閱讀筆記(六)部署BrianZhang:《微服務設計》閱讀筆記(七)測試BrianZhang:《微服務設計》閱讀筆記(八) 監控BrianZhang:《微服務設計》閱讀筆記(九)安全BrianZhang:《微服務設計》閱讀筆記(十)康威定律和系統設計BrianZhang:《微服務設計》閱讀筆記(十一)規模化微服務BrianZhang:《微服務設計》閱讀筆記(十二完結篇)總結軟體開發之路推薦閱讀:
※《微服務設計》閱讀筆記(十)康威定律和系統設計
※哈希演算法集合類庫HashLib
※《微服務設計》閱讀筆記(五)分解單塊系統
※排列組合KwCombinatorics
※並行模式庫PPL應用實戰(一):使用task類創建並行任務