雲平臺架構實踐中的微服務分解原則

本文是在雲平臺架構實踐(參考這裏)中對於如何拆分微服務的一些經驗總結。html

業務原則

  • 單一責任原則:對於一個微服務而言,具備有限的業務範圍,能夠幫助咱們知足服務開發和交付的敏捷性;
  • 適當的邊界:關注微服務的功能範圍,一個服務的大小應該等於知足某個特定業務能力所須要的大小;
  • 業務分層: 從總體規劃上把業務分層,造成單向依賴,避免微服務之間的網狀依賴關係;
  • 顆粒度遞增:設計初期先把業務劃分到儘量細,而後依據其它原則合併到適當顆粒度;
  • 非惟一依賴:至少被2個以上其它微服務依賴的功能模塊,纔有必要獨立成一個微服務。

技術原則

  • 部署獨立性:能獨立於其它微服務部署,一個微服務故障不影響其它微服務;
  • 動態擴展:每一個微服務均可以動態的進行x軸和z軸的擴展,並適應雲環境下的自動化部署;( 參考這裏
  • 領域和應用解耦:提供數據操做能力的領域服務和執行業務邏輯的應用服務解耦;
  • 避免產生頻繁的跨庫查詢;
  • 避免產生頻繁的分佈式事務。

治理原則

  • 在業務分層的基礎上,根據業務細分規則,對微服務分組;
  • 各個分組之間經過API網關集成;
  • 經過API網關實現級輕量級消息路由,鑑權;
  • 運行時管理,如服務降級,限流,監控等可在API網關實現,讓微服務功能純粹;
  • 避免經過數據庫集成;
  • 避免部署多個版原本兼容。

相關資料

微服務架構風格數據庫

相關文章
相關標籤/搜索