基础
为了让调用远程服务像调用本地服务一样简单
原理
- 客户端
- 客户端Stub: 代理类,讲请求传递到服务端
- 网络传输 : stocket 或 Netty
常见RPC 框架
Java语言推荐: Dubobo , Motan
跨语言的话可以考虑: Thrift , gRpc
rpc 框架结构
最简单的架构
- client 消费者
- server 服务提供端
- registry 注册中心
服务提供端注册到注册中心, 消费者向注册中心请求-拿到服务
搭建基础的RPC框架需要哪些架构
- 注册中心: 负责服务地址的注册与查找
- 动态代理: 屏蔽方法调用细节
- 网络传输: Netty
- 序列化和反序列化工具: 数据传输的是二进
序列化
java中常用的序列化协议有hessian kyro protostuff
原生序列的缺点在于: 不支持跨语言,序列化后文件存储大
kyro 是一个高性能且成熟的序列化\反序列化工具
hessian 是较老的序列化实现了,支持跨语言且是轻量级的
protostuff 是在 protobuf基础上提供了更易用的组件