实现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 协议 ,转载请注明出处!