微服務基本組件:
- 服務注冊
- 注冊中心
- 服務框架
- 服務監控
- 服務跟蹤
- 服務治理
服務注冊
提供的服務名,服務返回的結果格式,如何解析,其他服務信息。
常用的服務描述方式:
- REST API:例如swagger.
- XML: 例如spring+dubbo的配置
- IDL: 例如gRPC這類跨語言調用框架。
注冊中心
發布與訂閱服務
主要流程:
- 提供者服務啟動時,向注冊中心注冊自己的服務。
- 消費者服務啟動時,向注冊中心聲明自己需要的服務。
- 注冊中心返回服務提供者的地址給消費者。
- 當服務提供者發生變化時,如服務銷毀,新增,需要通過注冊中心同志給消費者。
服務框架
通過注冊中心,服務消費者就可以獲取到服務提供者的地址,有了地址后就可以發起調用。但在發起調用之前你還需要解決以下幾個問題。
- 服務通信采用什么協議?就是說服務提供者和服務消費者之間以什么樣的協議進行網絡通信,是采用四層 TCP、UDP 協議,還是采用七層 HTTP 協議,還是采用其他協議?
- 數據傳輸采用什么方式?就是說服務提供者和服務消費者之間的數據傳輸采用哪種方式,是同步還是異步,是在單連接上傳輸,還是多路復用。
- 數據壓縮采用什么格式?通常數據傳輸都會對數據進行壓縮,來減少網絡傳輸的數據量,從而減少帶寬消耗和網絡傳輸時間,比如常見的 JSON 序列化、Java 對象序列化以及 Protobuf 序列化等。