RPC(远程过程调用)
区别于HTTP服务,RPC主要基于TCP/IP协议进行调用。
一个完整的RPC架构包含四个核心组件:
- Client:服务的调用方
- Server:服务的提供者
- Client Stub:存放服务端的地址消息,将客户端的请求参数打包成网络消息,通过网络远程发送给服务方
- Server Stub:接收客户端发送过来的消息,将消息解包,并调用本地的方法
成熟的 rpc库相对 http容器,更多的是封装了 “服务发现”,“负载均衡”,“熔断降级” 一类面向服务的高级特性,针对服务的 可用性 和 效率 等都做了优化
流行的RPC框架
gRPC
Google的开源框架,基于HTTP2.0协议,支持常见的众多编程语言。
Thrift
Facebook开源项目,支持跨语言的服务开发框架,有一个代码生成器对IDL定义文件自动生成服务代码。
Dubbo
阿里框架,协议和序列化框架可拔插。