图解 RPC 调用过程
Posted 大黄奔跑
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图解 RPC 调用过程相关的知识,希望对你有一定的参考价值。
关注我,可了解更多有趣的面试相关问题。
本篇收录于《offer快到碗里来》
写在之前
之前有其他读者反馈,我的文章每次主题不够鲜明,似乎什么都想讲,但是似乎什么都没有讲,因此,以后都会专门写某一个小点,不再贪多不烂。
本文不涉及其他的知识,比如为什么需要 Rcp
、有什么好处等等,只是单纯讲讲 Rcp
调用过程。
好戏开场
(1)服务消费方 (client
) 调用以本地调用方式调用服务;
(2)客户端存根 (client stub
) 接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体;
(3)socket
通过发起网络调用,并将请求参数之类转化为可网络传输的二进制(序列化)
(4)服务器端的 socket
讲消息发给服务器存根 (server stub
),讲二进制内容转化为具体对象(反序列化)
(5)服务端存根 (Server stub
) 收到通过网络接收到消息后按照相应格式进行拆包解码,获取方法名和参数;
(6)本地服务执行并将结果返回给服务端存根 (server stub);
(7)服务端存根 (server stub
) 将返回结果打包成消息
(8)服务器通过网络协议发送至消费方
(9)客户端存根 (client stub
) 接收到消息,并进行解码,返给客户端;
(10)客户端得到本次 Rpc
调用结果
解释几个名词
客户端(Client
): 服务的调用方
服务端(Server
):真正的服务提供者
服务端存根 (Server stub
) :接收客户端发送过来的消息,将消息解包,并调用本地的方法
以上是关于图解 RPC 调用过程的主要内容,如果未能解决你的问题,请参考以下文章