游乐游手机版
首页/AI教程/文章详情

gRPC与RPC核心区别详解

时间:2026-06-13 15:43
什么是 RPC?我们先来聊聊 RPC 到底是什么。它的全称是 Remote Procedure Call Protocol,中文翻译过来就是“远程过程调用协议”。不妨从两个维度来理解: 首先,它本质上是一种协议; 其次,它是一种 Client Server 的传输模式。 官方定义说得更直白一点:它是

什么是 RPC?

我们先来聊聊 RPC 到底是什么。

它的全称是 Remote Procedure Call Protocol,中文翻译过来就是“远程过程调用协议”。

不妨从两个维度来理解:

  • 首先,它本质上是一种协议;
  • 其次,它是一种 Client/Server 的传输模式。

官方定义说得更直白一点:它是一种通过网络从远程计算机程序上请求服务的协议,关键就在于——你不需要了解底层的网络技术细节。也就是说,服务调用方无需关心数据怎么打包、怎么传、怎么解包,这些事儿 RPC 全都替你兜底了。

再展开一点说,RPC 的分层设计还挺清晰的,大致可以分为三层:

  • 用户端和服务端:负责处理业务逻辑,调用本地的 Stub;
  • Stub 层:处理客户端和服务端之间约定好的语法、语义的封装与解封装;
  • RPCRuntime 层:负责最底层的网络传输。

下面这张图看起来是不是挺眼熟的?其实就和咱们平时开发中“前端请求后端接口”的流程差不多。

gRPC 和 RPC 区别

RPC 解决了什么问题?

RPC 的存在,其实是为了解决几个非常实际的问题:

  • 协议约定问题:比如你用 0 表示“是”,1 表示“否”,怎么让前端和后台共同遵守这个约定?这需要一套清晰的规范。
  • 传输协议问题:网络环境并不总是稳定,出现错误、重传、丢包或者性能瓶颈时,该怎么办?RPC 需要处理这些“脏活”。
  • 服务发现问题:你怎么知道服务端到底提供哪些远程服务可以调用?从哪个端口访问?服务端可能会同时实现多个远程调用,分布在不同的进程上,每个进程监听的端口也可能是随机的。客户端怎么知道该连哪个?这个问题解决了,远程调用的“门槛”才算真正降下来。

RPC 的应用场景

一般来说,RPC 主要用在两个场景上:

  • 实时聊天:比如即时通讯场景下,消息的收发高频且要求低延迟;
  • 微服务系统:这也是目前最主流的用法,微服务架构下各个服务之间的“内部通信”,RPC 几乎是标配。

RPC 的传输过程是怎么样的?

整个传输过程其实可以拆解成几个清晰的步骤:

  • 调用者(也就是 Client)以本地调用的方式发起远程调用;
  • Client stub(客户端存根)收到调用后,负责将方法名、参数等信息打包、编码成特定格式的网络传输消息体;
  • Client stub 通过网络把消息体发送给服务端;
  • Server stub(服务端存根)收到消息后,按照相应格式拆包解码,提取出方法名和参数;
  • Server stub 根据方法名和参数,执行对应的本地调用;
  • 被调用者(Server)执行业务逻辑后,将结果返回给 Server stub;
  • Server stub 将返回值打包编码成消息,并通过网络传回给客户端;
  • Client stub 收到消息后,拆包解码,将最终结果返回给 Client;
  • 至此,Client 拿到了本次 RPC 调用的最终结果,一次完整的远程调用就结束了。

RPC 与 HTTP 的对比

其实 RPC 和 HTTP 并不是一个层级的东西。如果真的要比较,应该是拿“RPC”和“HTTP + RestFul”来比,才更有意义。

传输协议

RPC 可以基于 HTTP 或者 TCP 进行传输,而 HTTP 协议只能基于 HTTP,灵活性上就有差距了。

传输效率

RPC 的一大优势在于它可以“吃掉”HTTP2 的红利,比如二进制分帧、多路复用这些特性,所以传输效率天然比 HTTP1 高出一截。

性能消耗

同样因为 HTTP2 的特性——二进制传输、头部压缩等——RPC 在性能消耗上也更低。

负载均衡

RPC 框架基本都内置了负载均衡策略,直接用就行。而 HTTP 的话,往往得额外配一个 Nginx 或者 HAProxy 才能搞定。

服务治理

在服务治理方面,RPC 能做到自动通知、不影响上游服务。而 HTTP 环境下,通常需要人工事先通知,然后再去改 Nginx/HAProxy 配置,效率和协调成本高不少。

什么是 gRPC

是什么

你可以把 gRPC 理解成基于 RPC 封装出来的一个开源框架,它的底层通信是基于 HTTP2 设计的。所以,gRPC 自然也继承并放大了 HTTP2 的优势:

  • 数据传输采用二进制分帧;
  • 多路复用;
  • 服务端推送;
  • 头部压缩。

是怎么传输的?

gRPC 和 RPC 区别

传输图

结合这张图来看会更直观:在 gRPC 的架构下,客户端的调用方只需要持有 gRPC Stub(为什么叫“存根”?其实就是一个本地袋里,帮你做编解码和网络调用),通过 Proto Request 向 gRPC Server 发起服务调用,然后 Server 端通过 Proto Response(s) 把结果返回给调用方。整个过程对客户端来说,和调用本地方法几乎没有区别。

JSON-RPC 接口

JSON-RPC 是一种非常轻量级的 RPC 协议。它使用 HTTP 作为传输层协议,数据格式则用 JSON。因为简单直接,所以配合像 Postman 这样的工具来测试和调用会非常顺手。

使用 Postman 发送 JSON-RPC 接口

具体操作步骤其实不复杂:

  • 第一步:打开 Postman,创建一个新的 HTTP 请求;
  • 第二步:在请求面板中,选择 HTTP 方法为 POST;
  • 第三步:输入 JSON-RPC 接口的 URL 地址;
  • 第四步:在 Body 中选择 raw - JSON,然后按以下格式输入请求数据:

{ "jsonrpc": "2.0", "method": {{要调用的方法名称}}, "params": {{方法所需的参数}}, "id": {{请求的唯一标识符}}}

  • 第五步:单击 Send 按钮发送请求。如果一切正常,响应面板中就会看到返回的 JSON 数据。

gRPC 和 RPC 区别

Postman

上面这个例子中,我们调用了一个名为 echo 的方法,并传入了一个对象作为参数,请求的唯一标识符设为 123。

使用 Apifox 调试 gRPC

Apifox 支持基于 .proto 文件的 gRPC 调试,包括一元调用和流式调用。创建项目时选择“gRPC 项目”,然后导入 .proto 文件,不需要写任何代码就能直接调用 gRPC 接口,对开发者来说非常友好。

gRPC 和 RPC 区别

当然,在调试 gRPC 接口之前,得先把作为 API 定义的 .proto 文件导入进来。如果有文件依赖关系,也不要紧,Apifox 支持手动添加依赖关系目录。

gRPC 和 RPC 区别

一元调用

一元调用的操作很简单:在地址栏填好 URL,直接点击“调用”按钮就行了。

gRPC 和 RPC 区别

流式调用

流式调用则涵盖了服务端流、客户端流和双向流几种模式。

发起调用之后,你可以在 Message 标签下撰写消息并发出去。Apifox 提供的时间线视图会按时间顺序集中展示调用状态、发送的消息以及收到的消息。点击某条消息后,可以很方便地查看完整的详情信息。

gRPC 和 RPC 区别

来源:https://apifox.com/apiskills/grpc-vs-rpc-differences/
上一篇年度精选几款免费易用的国产类似Postman软件推荐 下一篇ElasticSearch实战教程Postman版入门到精通完整详细步骤指南
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
刚刚,OpenClaw和Cursor杀入手机!
AI教程 · 2026-07-01

刚刚,OpenClaw和Cursor杀入手机!

AI Agent,真的开始从电脑里“跑出来”了。以前我们用 Agent,基本离不开网页、IDE、终端、云环境。你想让它写代码、查资料、改项目、跑任务,很多时候还得坐在工位前盯着。但现在不一样了。OpenClaw 推出了 iOS 和安卓原生 App,手机可以变成私有 Agent 网络里的一个移动节点。

幻灯片排版优化AI智能助手,节省时间与精力
AI教程 · 2026-07-01

幻灯片排版优化AI智能助手,节省时间与精力

说起来,今天想和大家聊聊一个特别实在的话题:怎么用AI工具把PPT排版效率提上去,真正省下时间和精力。谁不想在忙忙碌碌的工作里找到点儿省事的诀窍呢?我有个朋友,为了准备一次重要汇报,连着熬了三个晚上折腾PPT,最后出来的效果也就是勉强及格。要是当时他能用上AI工具,结果会不会完全不一样?PPT排版优

AI排版软件让文档制作轻松又高效
AI教程 · 2026-07-01

AI排版软件让文档制作轻松又高效

AI智能排版工具通过自动识别文档结构、调整格式,显著提升排版效率。实际案例显示,文档处理时间可缩短约50%,项目交付效率提高40%。其功能涵盖自动排版、模板库、智能校对等,重构了文档制作流程,使用户专注内容创作,提升专业形象与市场竞争力。

Karpathy晒邮件曝光注意力机制真正起源:10年前三项独立研究
AI教程 · 2026-07-01

Karpathy晒邮件曝光注意力机制真正起源:10年前三项独立研究

2014年,三项研究几乎同时独立提出注意力机制:DzmitryBahdanau在YoshuaBengio实验室开发出RNNSearch(后称注意力),AlexGraves和JasonWeston团队也发表了类似机制。该思想源于解决循环神经网络信息瓶颈的需求,采用可微加权平均,成为深度学习核心算法。

如何选择AI排版工具与技巧提升内容创作效率
AI教程 · 2026-07-01

如何选择AI排版工具与技巧提升内容创作效率

AI排版工具推荐与技巧:如何提升内容创作效率与视觉设计效果其实,AI排版早已成为内容创作领域的热门话题。在信息爆炸的时代,大家都想知道如何让内容在海量信息中脱颖而出。简单来说,AI排版就是借助人工智能技术自动化处理文本、图像等内容的布局与设计。不妨想象一下:星巴克菜单上那些赏心悦目的排版,背后可能就