1.RPC介紹
RPC是一種通過網絡從遠程計算機程序上請求服務,而不需要了解底層網絡技術的思想。RPC 是一種技術思想而非一種規范或協議,常見 RPC 技術和框架有:
- 應用級的服務框架:阿里的 Dubbo/Dubbox、Google gRPC、Spring Boot/Spring Cloud。
- 遠程通信協議:RMI、Socket、SOAP(HTTP XML)、REST(HTTP JSON)。
- 通信框架:MINA 和 Netty。
目前流行的開源 RPC 框架還是比較多的,有阿里巴巴的 Dubbo、Facebook 的 Thrift、Google 的 gRPC、Twitter 的 Finagle 等
下面
2.完整的RPC框架
在一個典型 RPC 的使用場景中,包含了服務發現、負載、容錯、網絡傳輸、序列化等組件,其中“RPC 協議”就指明了程序如何進行網絡傳輸和序列化。
3.RPC核心功能
RPC 的核心功能是指實現一個 RPC 最重要的功能模塊,就是上圖中的”RPC 協議”部分:
下面分別介紹核心 RPC 框架的重要組成:
組成 | 作用 |
---|---|
客戶端(Client) | 服務調用方 |
客戶端存根(Client Stub) | 存放服務端地址信息,將客戶端的請求參數數據信息打包成網絡消息,再通過網絡傳輸發送給服務端 |
服務端存根(Server Stub) | 接收客戶端發送過來的請求消息並進行解包,然后再調用本地服務進行處理 |
服務端(Server) | 服務的真正提供者 |
Network Service | 底層傳輸,可以是 TCP 或 HTTP |