常见的RPC框架有哪些?

常见的 RPC 框架涵盖了多种语言和生态系统,以下是主流的、具有代表性的 RPC 框架,分为 通用型 和 Java 生态专用型 两类,并按是否支持多语言、序列化协议、传输协议等进行归类和简要说明:

✅ 一、通用型跨语言 RPC 框架

框架支持语言序列化方式传输协议特点gRPC多语言(官方支持 11+)Protobuf(二进制)HTTP/2Google 出品,性能高,双向流,强类型,生态活跃Thrift多语言(20+)自定义二进制协议TCP 或 HTTPFacebook 开源,灵活度高,支持多种传输与序列化组合Apache AvroJava 为主,支持 C/C++/Python 等JSON 或二进制TCP、HTTP、KafkaHadoop 生态常用,支持 schema 演化,适合大数据场景BRPCC++为主,支持 Java/Python 等多种(可插拔)支持多协议百度开源,高性能,高并发场景适用,支持多协议

✅ 二、Java 生态专用 RPC 框架(适合 Spring Cloud / 微服务)

框架协议类型序列化方式适合场景 / 特点Dubbo 3.x支持 Triple(基于 HTTP/2)、Dubbo 协议等Hessian2、Protobuf、JSON阿里出品,功能齐全,服务治理强,支持多语言,支持 gRPCSpring Cloud OpenFeignHTTP 协议 + JSONJSONSpring 官方推荐,集成简单,基于注解,适合 HTTP 微服务MotanTCP / HTTP自定义序列化Weibo 开源,轻量级,适合中小型项目Tars多协议(Tars、HTTP)Tars 自定义协议腾讯出品,支持多语言,功能全面,适合大型分布式系统gRPC-JavaHTTP/2Protobuf可单独使用或与 Spring Boot 整合,适合追求性能的系统

✅ 三、框架选型建议

应用场景推荐框架高性能、双向流、多语言互通gRPCSpring Boot / Spring Cloud 项目Spring Cloud OpenFeign / Dubbo公司已有阿里生态(注册中心、配置中心)Dubbo 3.x(推荐 Triple 协议)跨团队通信、灵活协议要求Thrift / Avro大数据平台内部调用Avro / gRPC极致性能、内部定制需求BRPC / Tars

✅ 四、补充说明:Spring Cloud 和 RPC 的关系

Spring Cloud Feign:是基于 HTTP 的 RPC 封装(本质是 HTTP + JSON + 模拟接口调用方式)。

Dubbo:是典型的“非 HTTP 的高性能 RPC 框架”,支持多协议注册中心(如 Zookeeper、Nacos),适合复杂微服务治理。

Samsung Galaxy Note 4 (SM-N910P) - 规格
detective的用法_是什么意思_怎么读_例句