新闻资讯

最新动态、版本更新、活动公告

欧博最新官网远程过程调用和本地过程调用啥

发布时间:2026-07-18

欧博最新官网远程过程调用和本地过程调用啥区别?RPC调用流程来啦

远程过程调用,自然是相对于本地过程调用

于本地进行的过程调用, 恰似此刻身处家中, 怀揣洗碗之念, 便索性将碗放入洗碗机里头, 旋即开启洗碗机的开关, 如此一来便可着手清洗, 这般情形便被称作本地过程调用。

远程过程调用, 意味着当前你并不在家时, 未曾预料之事突现, 即猛然发觉碗盏尚未洗涤, 随后你拨打了一通电话过来, 要求我前去执行洗碗这一行为, 此情形便属于远程过程调用。

RPC调用的流程:

被调用过程

被调用过程

服务消费方也就是client, 以本地调用的方式去调用服务, client stub在接收到调用之后, 负责把方法、参数等组装成能够用于网络传输的消息体, client stub要找到服务地址, 并且将消息发送到服务端, server stub收到消息后进行解码, server stub依据解码结果调用本地的服务, 本地服务执行后把结果返回给server stub, server stub将返回结果打包成消息并发送至消费方即client, client stub接收到消息后进行解码, 服务消费方client得到最终结果。

RPC的目标在于, 将2至8的这些步骤全都进行封装, 使得用户对于这些细节处于透明状态。

RPC消息数据结构接口的名称, 倘若不传, 那么服务端就无法知晓要调用哪个接口的方法名, 一个接口当中可能会存在很多方法, 其参数类型以及参数值, 还有超时时间, 再有requestID, 它用于标识唯一的请求id, 另外还有返回值状态code, 同时还有requestID的序列化与反序列化。

被调用过程

当下序列化的方案变得愈发之多, 每一种序列化方案均存在着优点以及缺点, 它们于设计的最初之时拥有自身独具特色的应用场景, 那么究竟该选择哪一种呢? 从RPC的角度去看, 主要看这三点:

欧博手机版国际

比如说通用性, 它关乎到对像Map这类复杂数据结构有无支持能力;再讲讲性能方面, 这里面涵盖了时间复杂度以及空间复杂度等状况, 鉴于RPC框架会被公司内几乎所有服务所运用, 要是在序列化环节上能够节省些许时间, 那么对于整个公司取得的收益而言, 那可是相当可观的, 同样的道理, 要是在序列化方面能够节省一点内存, 如此一来网络带宽也能够省下数目不少的量;还有可扩展性方面, 对于互联网公司来讲, 如果某个序列化协议具备那种优异的可扩展性, 能够支持新增一些跟业务相关的字段, 同时还能够把老的部分字段给摘除, 而且在这个过程中不会对原有的老服务产生任何影响, 像这样便能极大地提升系统所具备的健壮程度了。一个优秀的RPC框架需要考虑的问题



返回新闻列表