什么是微服務
微服務的核心就是將傳統的一站式應用,根據業務拆分成一個一個的服務,徹底的去耦合每一個服務提供單個的服務,一個服務做一件事,從技術角度看就是一種小而獨立的處理過程,類似進程概念,能夠自行單獨啟動或銷毀,擁有自己獨立的數據庫。
微服務之間是如何通訊
遠程過程調用
直接通過遠程過程調用來訪問別的service
優點
簡單,常見,因為沒有中間件代理,系統更簡單。
缺點
只支持請求/響應的模式,不支持別的,比如通知、請求/異步響應、發布/訂閱降低了可用性,因為客戶端和服務端在請求過程中必須都是可用的。
消息
使用異步消息來做服務間通信,服務間通過消息管道來交換消息,從而通信。
優點
把客戶和服務端解耦,更輕松耦合,提高可用性,支持很多通訊機制,比如通知,請求/異步響應、發布/訂閱、發布/異步響應
缺點
消息中間件有額外的復雜性。
微服務之間是如何通訊
基于容器技術,提供Dubbo、Spring Cloud等多種微服務解決方案,快速建設企業級微服務平臺

持續集成
基于容器技術,兼容業界廣泛使用的CI/CD場景與工具,提供高性能,易接入,易使用的持續集成與持續部署

多語言支持
支持 Java、Go、Python、JavaScript、PHP 等語言,Node.js、.Net 等環境

服務治理
支持 Spring Cloud、Dubbo、Service Mesh 應用框架及多框架混合方案 Docker、Kubernetes 開源原生支持
方案全景圖

適合場景
微服務的優勢
通過對業務的功能模塊化分拆,對每個服務定義清晰的業務邊界,將應用分解成多個可管理的微服務
敏捷性
微服務促進若干小型獨立團隊形成一個組織,這些團隊負責自己的服務。各團隊在小型且易于理解的環境中行事,這縮短了開發周期時間。您可以從組織的總吞吐量中顯著獲勝。
擴展性
通過微服務,您可以獨立擴展各項服務已滿足其支持的應用程序功能的需求,這使團隊能夠適當調整基礎設施需求,準確衡量功能成本,并在服務需求激增時保持可用性。
復用性
將軟件劃分為小型且明確的模塊,讓團隊可以將功能用于多種目的,專為某項功能編輯的服務可以用作另一項功能的構建塊。這樣開發人員可以創建新功能時無需從頭開始編寫代碼。
彈性
服務獨立性增加了程序應對故障的彈性,在整體式架構中,如果一個組件出現故障,可能導致整個程序無法運行。通過微服務,程序可以降低功能而不導致整個程序崩潰來處理總體服務故障。