RPC框架
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 |