微服務是一種以業務功能為主的服務設計概念,將業務功能明確劃分和解耦合,彼此獨立但協作的方式疊代更新。
跨平台程序呼叫
- 通訊協定
- SOAP:簡單物件存取協定(Simple Object Access Protocol) ─ XML序列化
- REST:表現層狀態轉換(Representational State Transfer) ─ JSON序列化
- RPC:遠端程序呼叫(Remote Procedure Call, RPC)
是微服務間通訊的核心,提供序列化(Serialization)與跨程式語言,提供跨平台資料傳輸功能。
- gRPC:Protobuf序列化,支援HTTP/2、雙向串流、TCP標頭壓縮、通道重複使用。
- Thrift:支持多種通訊協定。
- IDL:介面描述語言(Interface Definition Language)
定義Client/Server間的通訊介面和訊息格式。
服務註冊與探索
- 服務呼叫
- 寫死(Hard Code)
- 代理服務
- DNS查詢
- 服務註冊(Service Registry)與探索(Service Discovery)
- 持久化資料(Persistent data)
- 服務策略(service strategy)
- 遠端程序呼叫(Remote Procedure Call, RPC)
服務管理(Service Mesh)
依賴代理服務(Proxy)佈署的服務網格化,並利用中心控制台集中管理,Istio是目前較為主流的框架。