優點
- 提升開發交流,每個服務足夠內聚,足夠小,代碼容易理解;
- 服務獨立測試、部署、升級、發布;
- 按需定制的DFX,資源利用率,每個服務可以各自進行x擴展和z擴展,而且,每個服務可以根據自己的需要部署到合適的硬件服務器上;每個服務按
- 需要選擇HA的模式,選擇接受服務的實例個數;
- 容易擴大開發團隊,可以針對每個服務(service)組件開發團隊;
- 提高容錯性(fault isolation),一個服務的內存泄露並不會讓整個系統癱瘓;
- 新技術的應用,系統不會被長期限制在某個技術棧上;
缺點
- 沒有銀彈,微服務提高了系統的復雜度;
- 開發人員要處理分布式系統的復雜性;
- 服務之間的分布式通信問題;
- 服務的注冊與發現問題;
- 服務之間的分布式事務問題;
- 數據隔離再來的報表處理問題;
- 服務之間的分布式一致性問題;
- 服務管理的復雜性,服務的編排;
- 不同服務實例的管理。
