RPC(远程过程调用)

区别于HTTP服务,RPC主要基于TCP/IP协议进行调用。

一个完整的RPC架构包含四个核心组件:

  1. Client:服务的调用方
  2. Server:服务的提供者
  3. Client Stub:存放服务端的地址消息,将客户端的请求参数打包成网络消息,通过网络远程发送给服务方
  4. Server Stub:接收客户端发送过来的消息,将消息解包,并调用本地的方法

成熟的 rpc库相对 http容器,更多的是封装了 “服务发现”,“负载均衡”,“熔断降级” 一类面向服务的高级特性,针对服务的 可用性 和 效率 等都做了优化

流行的RPC框架

gRPC

Google的开源框架,基于HTTP2.0协议,支持常见的众多编程语言。

Thrift

Facebook开源项目,支持跨语言的服务开发框架,有一个代码生成器对IDL定义文件自动生成服务代码。

Dubbo

阿里框架,协议和序列化框架可拔插。