微服務拆分的10條戒律
微服務拆分10條戒律
什么是微服務
微服務(英語:Microservices)是一種軟件架構風格,它是以專注于單一責任與功能的小型功能區(qū)塊 (Small Building Blocks) 為基礎,利用模塊化的方式組合出復雜的大型應用程序,各功能區(qū)塊使用與語言無關 (Language-Independent/Language agnostic)的API集相互通信。微服務是一種以業(yè)務功能為主的服務設計概念,每一個服務都具有自主運行的業(yè)務功能,對外開放不受語言限制的 API (最常用的是 HTTP),應用程序則是由一個或多個微服務組成。

微服務拆分的10條戒律
1.用有限的上下文和普適語言來審視您的業(yè)務領域:
1.與產(chǎn)品所有者進行討論:“業(yè)務目標是什么?”、“特定功能中的參與者是誰?”、“他們在定義功能時使用了哪些術語?”。在這些每個步驟上,都要提出更多問題,直到您弄清楚沖突的術語是什么為止,例如“訂單上下文客戶”與“基礎結構支持上下文客戶”是不同的。2.一旦理解了沖突的術語并結合了相關功能,請制定一個上下文,以便在每個上下文中的每個域名的實體名稱都是清晰的。3.為每種情況定義一種通用語言,以便業(yè)務團隊和技術團隊在交流時可以使用一種通用語言進行溝通交流。4.從一個粗粒度的有界上下文開始。如果以后有令人信服的理由進行劃分,則劃分有界上下文。如果有商業(yè)原因,我建議不要這樣做。
2.確定核心領域并應用創(chuàng)新的點子:
3.對通用域進行成本優(yōu)化:
4.考慮支持領域:
5.引入反腐層(Anti-Corruption Layer):

6.識別數(shù)據(jù)通信模式:
7.引入事件驅動架構(EDA):
Rest API公開所有內容,那么你將會看到這些API創(chuàng)建出了一個非常復雜的通信網(wǎng)絡。8.使API簡潔明了
CustomerUpdateEvent的粗粒度事件,而不是提供兩個獨立的事件。9.將相關的微服務合并為更大的服務:
10.引入無縫開發(fā)支持工具:
最后
歡迎留言討論。
譯文連接:
https://dzone.com/articles/10-commandments-on-microservice-decomposition
歡迎關注我的公眾號“須彌零一”,原創(chuàng)技術文章第一時間推送。
評論
圖片
表情
