微服務架構風格

本文說明了微服務架構風格的優缺點,以及微服務架構的模式集合。html

特色

微服務架構是一組架構模式和特性的集合,這個集合很大程度上定義了什麼是微服務,也說明了如何應用微服務架構來構建大型/複雜應用程序。前端

遵循微服務架構的模式和特性,經過將一個應用程序設計構建爲一組鬆散耦合的協做服務。每一個服務都實現了一部分的相關功能。對應於Scale Cube(請參考分佈式系統三維可縮放模型)的Y軸。數據庫

服務使用HTTP / REST等同步協議或AMQP等異步協議進行通訊。能夠彼此獨立地開發和部署服務。每一個服務都有本身的數據庫。後端

優勢

支持大型複雜應用程序的持續交付和部署

  • 更好的可測試性 - 測試服務更小,速度更快;
  • 更好的可部署性 - 能夠獨立部署服務;
  • 可以圍繞多個自動團隊組織開發工做。

每一個微服務的代碼規模更小

  • 使開發人員更容易理解和開發;
  • 開發人員的在使用IDE時更加高效;
  • 應用程序啓動速度更快,加快了部署速度。

改善了整個應用體系的故障隔離能力

消除對技術堆棧的長期綁定

缺點

分佈式系統的額外複雜性

  • 開發工具沒有針對分佈式系統的特定支持;
  • 集成測試更加困難;
  • 必須實現分佈式的通訊機制;
  • 處理分佈式事務的複雜度;
  • 要處理多個開發團隊之間的協調工做。

部署的複雜性

  • 容器化部署的複雜性;
  • 容器編排和服務治理的複雜性;
  • 須要更多公共服務的支持,例如服務發現,服務指標監控等。

額外的內存消耗

首先要解決的問題

如何將一個大型複雜的應用程序分解爲微服務?安全

分解模式

部署模式

特性

通訊模式

外部訪問模式

服務發現模式

可靠特性

數據管理模式

安全特性

測試特性

可監控特性

UI模式

相關文章

相關文章
相關標籤/搜索