如果结果没有在客户端存根处解包,RPC 模型会发生啥?
Posted
技术标签:
【中文标题】如果结果没有在客户端存根处解包,RPC 模型会发生啥?【英文标题】:What would happen in a RPC Model if the result is not unpacked at client stub?如果结果没有在客户端存根处解包,RPC 模型会发生什么? 【发布时间】:2018-07-25 05:06:11 【问题描述】:在远程过程调用 (RPC) 中,当指令从客户端传递到 N网络例程>LocalKernel 时,该指令被打包在 客户端存根中,然后从本地客户端内核发送到网络内核。然后这条指令被发送到服务器存根,然后服务器例程处理它并将结果传递给服务器存根。该结果再次与必要的参数打包并发送回服务器的本地网络内核,然后发送到客户端内核,然后发送到客户端例程。但是如果这个打包的信息没有被客户端存根“解包”并直接发送到客户端例程会发生什么?
【问题讨论】:
【参考方案1】:如果你还在寻找答案,
打包存根由客户端/服务器识别结果所需的数据组成。存根的原因是确保在不同操作系统/语言下工作的 2 个系统可以理解各自的代码。
这篇文章涵盖了一个概述 - Client stub Vs Client socket & Server stub Vs Server socket
因此,如果不解包存根,客户端例程将无法读取数据。
【讨论】:
以上是关于如果结果没有在客户端存根处解包,RPC 模型会发生啥?的主要内容,如果未能解决你的问题,请参考以下文章
7.Go语言高并发与微服务实战 --- 远程过程调用 RPC