-
RPC工作原理是什么?
提问:小迪 | 时间:2022-12-13 18:05:05
标签:PRC,原理
回答者:智能小助手 | 时间:2022-12-15 15:47:27
RPC是远程过程调用,它是一种通过网络从远程计算机程序中要求服务而不了解底层网络技术的想法。
一个完整的RPC主要包括三个部分:
服务注册中心(Registry),负责向本地服务发布到远程服务,管理远程服务,提供给服务消费者使用。
服务提供者(RPCServer),负责提供服务接口定义和服务实现类。
服务消费者(RPCClient),负责通过远程代理调用远程服务。
服务提供者(Server)启动后,主动去服务注册中心(Registry)注册机器IP.提供的端口及服务清单;
服务消费者(Client)开始时,服务注册中心(Registry)获取服务提供者地址列表。
服务注册中心(Registry)可以实现负载平衡和故障切换。
RPC调用过程如下:
(1)客户端(Client)以本地调用方式调用服务;
(2)客户端存根(Clientstub)收到调用后,负责调用方法.参数等组装成可以进行网络传输的消息体(将消息体对象序列化为二进制);
(3)客户端通过NetworkService向服务端发送消息;
(4)服务端存根(Serverstub)收到消息后解码(反序列化消息对象);
(5)服务端存根(Serverstub)根据解码结果调用本地服务;
(6)执行本地服务并将结果返回服务端存根(Serverstub);
(7)服务端存根(Serverstub)将返回结果打包成消息(序列化结果消息对象);
(8)服务端(Server)通过NetworkService向客户端发送消息;
(9)客户端存根(Clientstub)接收结果消息并解码(序列化结果消息);
(10)客户端(Client)最终结果。
RPC就是要把2.3.4.7.8.这些步骤都是封装的。

