RPC 是什么

RPC 全称:Remote Procedure Call ,中文叫远程过程调用

一句话理解:

像调用本地函数一样,直接调用另一台服务器上的方法 / 函数,不用关心网络请求、协议、数据传输细节。


1. 核心作用

解决分布式系统服务之间的调用问题:

  • 单体项目:所有代码在一台机器,方法直接本地调用;
  • 微服务 / 分布式:用户服务、订单服务、支付服务部署在不同服务器,需要跨机器通信,RPC 就是干这个的。

2. 核心特点

  1. 透明调用调用远程方法 和 调用本地方法写法几乎一致,屏蔽网络底层。
  2. 高性能 相比 HTTP 接口(JSON + 文本、头信息多),RPC 一般用二进制序列化 、长连接、自定义协议,速度更快、开销更小
  3. 跨语言 / 跨服务支持不同开发语言写的服务互相调用。

3. 简单调用流程

  1. 客户端(调用方)发起本地方法调用;
  2. RPC 框架自动封装请求数据、序列化、通过网络发给服务端;
  3. 服务端接收、反序列化、执行目标方法;
  4. 结果原路返回,客户端拿到返回值。

4. RPC 和 HTTP 区别(最常考)

表格

维度 RPC HTTP(RESTful)
协议 自定义 TCP 协议(如 Dubbo、gRPC) 标准 HTTP1.1/2/3
数据格式 二进制(Protobuf、Hessian) JSON/XML 文本
性能 高、延迟低、适合内部服务 一般,适合对外接口
使用场景 微服务内部服务互调 前后端交互、第三方对外接口
可读性 强,调试方便

5. 主流常见 RPC 框架

  1. gRPC:谷歌开源,跨语言,Protobuf 序列化,云原生常用;
  2. Dubbo:阿里开源,Java 微服务经典 RPC 框架;
  3. Spring Cloud Alibaba Dubbo:国内电商、金融系统常用;
  4. Thrift:Facebook 开源,跨语言高性能。

6. 通俗举例

  • 本地调用:你在自己家做饭,直接拿柜子里的锅;
  • RPC 调用:你打电话给隔壁邻居,让邻居帮你拿一口锅送过来,你只需要喊一句(调用方法),不用管走路、敲门、传递过程
相关推荐
广州宏帝箱包39 分钟前
出口箱包的包装标准:防潮、防摔、运输安全的设计要点
大数据·网络
彧azz39 分钟前
Linux 网络编程学习总结
linux·网络·笔记·学习·面试
updayday8541 小时前
离职域账号状态变更与Ping64操作记录核对
大数据·网络·数据库·安全·智能路由器
安易算力2 小时前
PUE优化工程实践:从1.5到1.2的制冷架构与气流组织改造路径
网络·python·容器·架构·kubernetes
Ivanqhz3 小时前
数据搬运是性能关键
java·服务器·网络·人工智能·深度学习
Julien20044 小时前
自动挂载网络附加存储
linux·服务器·网络
K成长日志4 小时前
BLE链路层-隐私保护
网络·物联网·蓝牙·iot·ble
K成长日志4 小时前
BLE链路层-Feature Support
网络·嵌入式·无线通信·蓝牙·iot·ble
Ivanqhz4 小时前
Slope One 算法详解:与矩阵分解、共现矩阵的异同
java·服务器·网络·人工智能·深度学习
王六米。5 小时前
RAG知识库建设 文档解析 切分与索引如何衔接
服务器·前端·网络·企业数字化转型·智钳智能盒子