RPC VS REST

对比维度

RPC(Remote Procedure Call)
REST(Representational State Transfer)
架构风格 面向过程 面向资源
通讯协议 HTTP/2或自定义协议 HTTP/1
数据格式 Protocol Buffers(Protobuf),MessagePack等二进制序列化格式(也支持JSON,XML等格式) JSON,XML等格式
相关framework gRPC、Dubbo、Thrift等 HttpClient、RestTemplate等
使用场景 微服务部,注重性能和效率,对服务调用的实时性和低延迟要求高 提供的API,方便不同客户端(如 Web 应用、移动应用)接入

 

在微服务架构中,内部服务间使用 RPC 可提高系统整体性能;而对外提供服务时,RESTful API 能让更多类型的客户端轻松接入,提升系统的开放性和扩展性。

 

RPC 比 REST 快的主要原因:

二进制数据格式(比 JSON 紧凑)
多路复用(减少连接开销)
直接调用方法(减少协议开销)
连接复用(减少握手和请求时延)
支持流式通信(适用于大数据传输)

但 RPC 也有缺点,比如:
调试难度大(不像 REST 可以直接用浏览器访问)
协议复杂(需要代码生成器,不如 REST 直接使用 HTTP 简单)

如果追求高性能、低延迟、实时通信,RPC(特别是 gRPC)通常是更好的选择。
如果追求简单、跨语言兼容性好,REST 可能更适合。

posted @ 2025-02-09 17:21  Ashe|||^_^  阅读(65)  评论(0)    收藏  举报