实现RPC框架
简介
实现一个简单的RPC
框架,并在这个框架上使用一个计算机服务。
跨进程交互的几种形式:
直接交互
RESTFUL
WebService
HTTP
RPC
依赖中间件
基于DB做数据交换
基于MQ做数据交换
各模块介绍
协议模块
- Peer
- 表示网络传输的一个端点
- 两个参数:host,post
- 服务描述类
- 表示一个服务
- 包含类、方法、返回值、参数列表
- 请求
- 表示RPC的请求
- 包含服务、参数数组
- 响应
- 表示RPC的返回
- 包含返回码、返回信息message、返回结果
公共模块
- 反射工具类
- 根据class创建对象
- 获取某个类的所有公共方法
- 调用某个对象指定方法
序列化模块
- 序列化:对象转换为JSON
- 反序列化:JSON转换为对象
网络模块
Client协议
- 创建连接
- 发送数据等待响应
- 关闭连接
Server协议
- 启动监听
- 接受请求
- 关闭监听
server模块
- Server配置类
- 使用的网络模块
- 使用的序列化模块
- 使用的端口
- 具体服务类
- 两个字段:target、method
- 服务管理类
- 注册服务
- 服务查找
- 服务调用类
- 实现调用具体服务
- RPC Server
- 配置
- 网络
- 序列化
- 服务管理
- 服务调用
client模块
服务选择类
- 选择一个服务连接
客户配置类
- 网络配置信息
- 序列化配置信息
- 路由选择
- 默认连接数
RPC Client
- 配置
- 序列化
- 路由选择
调用远程服务的代理类
- 远程服务的类
- 序列化
- 网络
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!