首页 > 其他分享 >RPC--远程过程调用协议

RPC--远程过程调用协议

时间:2024-06-07 10:36:09浏览次数:16  
标签:调用 -- 解码 RPC 远程 服务端 客户端

什么是RPC?

RPC的全称是:Remote Procedure Call,远程过程调用。它的作用就是允许一台机器上的程序去调用另一台机器上的程序,而不会意识到这个过程是远程的,也就是程序员不需要知道网络通信中的任何细节。

为什么要使用RPC?

  1. 提高开发效率:程序员不需要再关心网络中实现的细节,可以直接像调用本地函数一样去调用远程的服务

  2. 跨语言的通信:支持不同的开发语言,也就是说不同语言编写的服务之间也可以通过RPC进行调用

RPC就像是一个中介,开发者不需要知道中介干了什么,而只需要将需要使用的东西告诉中介,中介自然会把它送过来。

RPC是如何工作的?

RPC工作流程

  1. 客户端以本地调用的方式去调用服务
  2. 传送到stub,将方法、参数等组装起来进行网络传输
  3. 找到服务端的地址,并将该信息传输到服务端
  4. 服务端接收到之后进行信息的解码
  5. stub根据解码的结果去调用本地服务,再将返回的结果打包成信息发送给客户端
  6. 客户端接收到之后就进行解码并返回到本地进程中去

标签:调用,--,解码,RPC,远程,服务端,客户端
From: https://www.cnblogs.com/Mr-DC/p/18236681

相关文章

  • Rust OO:多态与继承
    https://www.phodal.com/blog/rust-oo-notes/学习编程语言的最好方式最反复练习。最近在用Rust重写VSCode-Textmate库:scie。原有的代码中,大量地使用了OO相关的东西,而Rust要实现OO也需要一些奇技淫巧,而我本身对Rust也不是非常熟练,所以我写了这一篇笔记来记录如何实......
  • anaconda环境 使用PyInstaller打包,运行exe文件出现导入_ssl错误
    使用PyInstaller打包后运行exe文件出现错误NameError:name'ssl'isnotdefined。观察PyInstaller打包程序输出,发现找不到DLL文件的警报,查看对应环境下的DLLs文件夹发现导入ssl的DLL文件缺失。查阅资料发现由于anaconda环境DLL文件错误存放在lib文件夹下面,致使PyInstaller打包......
  • [ABC176D] Wizard in Maze
    题目链接:https://atcoder.jp/contests/abc176/tasks/abc176_d双端队列bfs模版题.众所周知,用队列实现bfs,队列中存的是当前的状态那么在当前这种题目中,下一步怎么走有两种决策,我们要把两种决策可能导致的状态更新全部都记录下来,因此我们可以用双端队列来实现bfs,把正常走的......
  • xpath常用的定位规则方法解析
     XPath是一种在XML文档中查找信息的语言,它同样适用于HTML文档,因为HTML可以被看作是一种特殊的XML。在XPath中,你可以使用各种表达式来定位元素。以下是XPath中元素定位的一些常见规则和方法:1.基本路径/ 表示根元素。// 表示选择文档中的节点,而不考虑它们的位......
  • 一口气搞懂Flink Metrics监控指标和性能优化,全靠这33张图和7千字
    https://www.51cto.com/article/684249.html flink中值得监控的几个指标背景为了维持flink的正常运行,对flink的日常监控就变得很重要,本文我们就来看一下flink中要监控的几个重要的指标重要的监控指标1.算子的处理速度的指标:numRecordsInPerSecond/numRecordsOutPerSecond,......
  • 列举常见的排序和查找算法
    在编程和算法设计中,排序和查找算法是非常基础和重要的。以下是常见的一些排序和查找算法:排序算法冒泡排序(BubbleSort)原理:重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序......
  • 描述Servlet监听器的类型和用途
    Servlet监听器是Servlet规范中定义的一种特殊的类,用于监听Web应用程序中特定事件的发生。它们按照监听的对象和事件类型,可以划分为多种类型,每种类型都有其特定的用途。监听器的类型按照监听对象划分应用程序环境对象(ServletContext)的事件监听器:ServletContextListener......
  • 8-4 【Python0036】中文级联菜单
    importtkinterastkfromtkinterimportttkfrompypinyinimportlazy_pinyin#省份、城市、地区数据data={"北京":{"北京市":["东城区","西城区","朝阳区"],},"上海":{"上海市......
  • 解释Servlet过滤器的作用和用法
    Servlet过滤器在JavaWeb开发中扮演着重要的角色,主要用于拦截客户端(如浏览器)与服务器资源之间的请求和响应,并进行相应的处理。以下是关于Servlet过滤器的作用和用法的详细解释:作用请求和响应的拦截:Servlet过滤器可以动态地拦截客户端发送的请求和服务器返回的响应,以便在请求......
  • dubbo~全局异常拦截器的使用与设计缺陷
    异常拦截器ExceptionMapper在JAX-RS(JavaAPIforRESTfulWebServices)中,ExceptionMapper接口用于将Java异常映射到HTTP响应。通过实现ExceptionMapper接口,你可以自定义如何处理特定类型的异常,并生成相应的HTTP响应。优先级和选择当有多个ExceptionMapper可用于处理同一类型的......