微服務之間是如何獨立通訊的?
阿新 • • 發佈:2018-11-10
微服務通訊機制
系統中的各個微服務可被獨立部署,各個微服務之間是鬆耦合的。每個微服務僅關注於完成一件任務並很好地完成該任務。
圍繞業務能力組織服務、自動化部署、智慧端點、對語言及資料的去集中化控制。
- 將元件定義為可被獨立替換和升級的軟體單元。
- 以業務能力為出發點組織服務的策略。
- 倡導誰開發,誰運營的開發運維一體化方法。
- RESTful HTTP協議是微服務架構中最常用的通訊機制。
- 每個微服務可以考慮選用最佳工具完成(如不同的程式語言)。
- 允許不同微服務採用不同的資料持久化技術。
- 微服務非常重視建立架構及業務相關指標的實時監控和日誌機制,必須考慮每個服務的失敗容錯機制。
- 注重快速更新,因此係統會隨時間不斷變化及演進。可替代性模組化設計。
微服務通訊方式:
-
同步:RPC,REST等
-
非同步:訊息佇列。要考慮訊息可靠傳輸、高效能,以及程式設計模型的變化等。
訊息佇列中介軟體如何選型
1.協議:AMQP、STOMP、MQTT、私有協議等。
2.訊息是否需要持久化。
3.吞吐量。
4.高可用支援,是否單點。
5.分散式擴充套件能力。
6.訊息堆積能力和重放能力。
7.開發便捷,易於維護。
8.社群成熟度。
RabbitMQ是一個實現了AMQP(高階訊息佇列協議)協議的訊息佇列中介軟體。RabbitMQ支援其中的最多一次和最少一次兩種。網易蜂巢平臺的服務架構,服務間通過RabbitMQ實現通訊。