一文带你轻松读懂RPC框架调用流程

兄弟萌,相信很多人只是简单知道 RPC 是远程过程调用,但是并不知道它如何实现远程调用,本文带你解析什么是 RPC 框架,以及 RPC 框架的远程调用过程?开始吧…

RPC(Remote Procedure Call,远程过程调用),是一种进程间通信方式,也就是说两台服务器 A、B,一个应用部署在 A 服务器上,想要调用 B 服务器上应用提供的函数/方法,由于不在同一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用参数。

如果是本地方法调用,直接压栈即可。RPC 就是要像调用本地的函数一样去调远程函数。
在这里插入图片描述
在远程调用时,我们需要执行的函数体是在远程的机器上的,也就是说,Multiply 是在另一个进程中执行的。我们如何实现远程调用呢?

  1. Call ID 映射。我们怎么告诉远程机器我们要调用 Multiply 函数呢?在本地调用中,函数体是直接通过函数指针来指定,我们调用 Multiply,编译器就自动帮我们调用它相应的函数指针。但在远程调用中,函数指针是不行的,因为两个进程的地址空间完全不同。所以,在 RPC 中,所有函数都必须有自己的一个 ID,并且这个 ID 在所有进程中都是唯一确定的。客户端在做远程过程调用时,必须附上这个 ID。然后我们还需要在客户端和服务端分别维护一个 ”函数 <–> Call ID“ 的对应表。当客户端需要进行
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值