【RPC】简易版rpc框架
照着代码自己敲了一遍,能理解的不多,疏通了一下RPC的宏观过程
一个RPC的实现需要三个主体:服务提供者、服务调用者、注册中心
- 服务调用者发送HTTP请求给服务提供者
- 首先需要将封装好的HTTP请求对象序列化
- 将序列化的对象发送出去
- 服务提供者对HTTP请求做处理,将处理结果发送HTTP响应给服务调用者
- 对收到的序列化字节数组进行反序列化
- 对反序列化后的HTTP请求进行处理(根据接收到的参数通过本地注册服务器将获取对应的服务类,并通过反射调用请求方法)
- 将处理结果封装成响应对象
- 对响应对象进行序列化
- 将序列化后的字节数组发送给服务请求者
- 服务请求者提取响应对象中的数据
- 将收到的序列化字节数组进行反序列化
- 根据业务逻辑对响应对象中的数据进行相关处理
服务调用者怎么知道服务提供者的ip地址和端口呢?
这就是注册中心该干的事了
如果有多个服务提供者,那服务调用者应该向哪一个提供者发送请求呢?
这就是负载均衡机制的事了