【RPC】简易版rpc框架


照着代码自己敲了一遍,能理解的不多,疏通了一下RPC的宏观过程

一个RPC的实现需要三个主体:服务提供者、服务调用者、注册中心

  1. 服务调用者发送HTTP请求给服务提供者
    1. 首先需要将封装好的HTTP请求对象序列化
    2. 将序列化的对象发送出去
  2. 服务提供者对HTTP请求做处理,将处理结果发送HTTP响应给服务调用者
    1. 对收到的序列化字节数组进行反序列化
    2. 对反序列化后的HTTP请求进行处理(根据接收到的参数通过本地注册服务器将获取对应的服务类,并通过反射调用请求方法)
    3. 将处理结果封装成响应对象
    4. 对响应对象进行序列化
    5. 将序列化后的字节数组发送给服务请求者
  3. 服务请求者提取响应对象中的数据
    1. 将收到的序列化字节数组进行反序列化
    2. 根据业务逻辑对响应对象中的数据进行相关处理

服务调用者怎么知道服务提供者的ip地址和端口呢?
这就是注册中心该干的事了

如果有多个服务提供者,那服务调用者应该向哪一个提供者发送请求呢?
这就是负载均衡机制的事了