一、准备

简单版本的基础上,进行一些优化工作,打造升级版的RPC框架,我们首先通过一个RPC的调用过程来了解RPC的原理 RPC示意图

二、一次RPC框架请求的流程

  1. 客户端调用了某个服务的方法,期望得到处理的结果
  2. 把本次调用的上下文,如服务名\方法签名\参数等信息序列化,构造request
  3. 根据被调用的服务名,方法签名等信息可以找到提供服务的server列表
  4. 根据负载均衡,从server列表中随机选取一个server作为目标进行调用
  5. 向选出的server发送该请求,客户端线程挂起
  6. server接收到请求,反序列并解析得到对应的服务名,方法名,参数等信息
  7. server根据调用信息找到真正的业务服务实例,调用业务服务的相应方法
  8. 把方法的返回值序列化,构造成response返回给客户端
  9. 把response传回给client
  10. client把接收到的response反序列化,得到服务处理结果,返回1中客户端调用处,唤起对应客户端线程

三、优化改进

四、总结

参考

Java实现简单的RPC框架(转)

源码地址