【C# 线程】RPC中常见的Stub| marshalling怎么理解

 

 

 

RPC服务的基本架构图如上,可以很清楚地看到,一个完整的RPC架构里面包含了四个核心的组件,分别是Client ,Server,Client Stub以及Server Stub,这个Stub大家可以理解为存根。分别说说这几个组件:

客户端(Client): 服务的调用方。

服务端(Server):真正的服务提供者。

客户端存根:存放服务端的地址消息,再将客户端的请求参数打包成网络消息,然后通过网络远程发送给服务方。

流程

  1. 客户端调用客户端stub(client stub)。这个调用是在本地,并将调用参数push到(stack)中。
  2. 客户端stub(client stub)将这些参数包装,并通过系统调用发送到服务端机器。打包的过程叫 marshalling。(常见方式:XMLJSON、二进制编码)
  3. 客户端本地操作系统发送信息至服务器。(可通过自定义TCP协议HTTP传输)
  4. 服务器系统将信息传送至服务端stub(server stub)。
  5. 服务端stub(server stub)解析信息。该过程叫 unmarshalling
  6. 服务端stub(server stub)调用程序,并通过类似的方式返回给客户端。
posted @   小林野夫  阅读(554)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
原文链接:https://www.cnblogs.com/cdaniu/
点击右上角即可分享
微信分享提示