基础

为了让调用远程服务像调用本地服务一样简单

原理

  • 客户端
  • 客户端Stub: 代理类,讲请求传递到服务端
  • 网络传输 : stocket 或 Netty

常见RPC 框架

Java语言推荐: Dubobo , Motan
跨语言的话可以考虑: Thrift , gRpc

rpc 框架结构

最简单的架构

  • client 消费者
  • server 服务提供端
  • registry 注册中心

服务提供端注册到注册中心, 消费者向注册中心请求-拿到服务
搭建基础的RPC框架需要哪些架构

  • 注册中心: 负责服务地址的注册与查找
  • 动态代理: 屏蔽方法调用细节
  • 网络传输: Netty
  • 序列化和反序列化工具: 数据传输的是二进

序列化

java中常用的序列化协议有hessian kyro protostuff
原生序列的缺点在于: 不支持跨语言,序列化后文件存储大

kyro 是一个高性能且成熟的序列化\反序列化工具
hessian 是较老的序列化实现了,支持跨语言且是轻量级的
protostuff 是在 protobuf基础上提供了更易用的组件