優點: 每個服務足夠內聚,足夠小,代碼容易理解這樣能夠聚焦一個指定的業務功能或業務需求。 開發簡單,開發效率提高,一個服務可能就是專一的只干一件事情。 微服務是松耦合的,是有功能意義的服務,無論是在開發階段或部署階段都是獨立的。 微服務能夠被小團隊單獨開發。 微服務能使用不同的語言開發。 易於和第三方集成,微服務允許容易且靈活的方式集成自動部署,通過持續集成工具,如Jenkins、Hudson、bamboo。 微服務易於被一個開發人員理解、修改和維護,這樣小團隊能夠更關注自己的工作成果。無需通過合作才能體現價值。 微服務允許你利用融合最新技術。 微服務只是業務邏輯的代碼,不會和HTML/CSS或其他界面組件混合。 每個微服務都有自己的存儲能力,可以有自己的數據庫,也可以統一數據庫。
缺點:
開發人員要處理分布式系統的復雜性
多服務運維難度,隨着服務的增加,運維的壓力也在增大
系統部署依賴
服務間通訊成本
數據一致性
系統集成測試
性能監控