暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

图解 RPC 调用过程

大黄奔跑 2021-03-07
959

关注我,可了解更多有趣的面试相关问题。
本篇收录于《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
):真正的服务提供者

客户端存根 (client stub
) :存放服务端的地址消息,再将客户端的请求参数打包成网络消息,然后通过网络远程发送给服务方(解决去哪儿找具体方法)

服务端存根 (Server stub
) :接收客户端发送过来的消息,将消息解包,并调用本地的方法


文章转载自大黄奔跑,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论