以下設計原則是在雲平台架構實踐( 參考這裡 )中的一些經驗總結,不一定适合所有微服務架構的體系。
業務原則
- 單一責任原則:對于一個微服務而言,具有有限的業務範圍,可以幫助我們滿足服務開發和傳遞的靈活性;
- 适當的邊界:關注微服務的範圍,而不是一味的把服務做小。一個服務的大小應該等于滿足某個特定業務能力所需要的大小;
- 業務分層: 先把業務分層,形成單向依賴,避免微服務之間的網狀依賴關系;
- 顆粒度遞增:初期先把業務劃分到盡可能細,然後依據其它原則合并到适當顆粒度;
- 非唯一依賴:至少被2個以上其它微服務依賴,才有必要獨立成一個微服務。
技術原則
- 部署獨立性:能獨立于其它微服務部署,一個微服務故障不影響其它微服務;
- 動态擴充:每個微服務都可以動态的進行x軸和z軸的擴充,并适應雲環境下的自動化部署;( )
- 領域和應用分層: 提供資料基本操作能力的領域服務層和執行業務邏輯的應用服務層解耦;
- 避免産生頻繁的跨庫查詢;
- 避免産生頻繁的分布式事務。
治理原則
- 根據業務和技術分層的情況,對微服務分組治理;
- 各個分組之間通過API網關內建;
- 通過API網關實作級輕量級消息路由,鑒權;
- 運作時管理,如性能,限流,監控等可在API網關實作,讓微服務功能純粹;
- 避免通過資料庫內建;
- 避免部署多個版本來相容。
相關資料
微服務架構風格你現在的氣質裡,藏着你走過的路,讀過的書,愛過的人。