一个典型的RPC调用过程如下:
1)服务消费者(客户端)通过本地调用来调用服务;
2)客户端存根接收到调用请求后,负责将方法、输入参数等信息序列化(组装)成能够进行网络传输的消息体;
3)客户端存根找到远程服务地址,并通过网络向服务器发送消息;
4)服务器存根在接收到消息后对其进行解码(反序列化操作);
5)服务器存根根据解码结果调用本地服务进行相关处理;
6)服务器本地服务业务处理;
7)将处理结果返回给服务器存根;
8)服务器存根的序列化结果;
9)服务器存根通过网络将结果发送给消费者;
10)客户端存根接收消息并对其进行解码(反序列化);
11)服务消费者获得最终结果。
如果您想自己实现一个RPC,最简单的方法是实现三个技术点:
它们是:
1)服务寻址;
2)数据流的序列化和反序列化;
3)网络传输。
分布式系统中,有下面几种角色:Consumer,Provider和注册中心