Apache Dubbo 的 Java 实现,一个用于构建 RPC 通信与微服务的框架。
smallnest/rpcx
一个 Go 语言 RPC 微服务框架,支持可插拔的服务发现、多种传输协议和编解码器,并可通过 HTTP 跨语言调用。
- Star
- 8,319
- Fork
- 1,173
- 未关闭 Issue
- 4
- 最近提交
- 2个月前
这是什么?
rpcx 是一个用 Go 编写的 RPC 框架,设计上参考了阿里 Dubbo,用于把应用拆分为通过网络相互调用的服务。Go 函数可以直接暴露为 RPC 方法,无需编写 proto 文件,客户端通过简洁的 API 调用,并可选择负载均衡和容错策略。
框架支持 TCP、HTTP、QUIC 和 KCP 传输协议,编解码支持 JSON、Protobuf、MessagePack 和原始字节。服务发现可使用点对点配置、ZooKeeper、etcd、Consul 或 mDNS,负载均衡提供随机、轮询、一致性哈希、加权等策略。其他语言的程序可以通过 HTTP 网关调用服务,项目also提供 Java 和 Rust 实现。
框架还包含鉴权、元数据传递、压缩、心跳、双向通信和备份请求等功能。自 1.7.6 版本起,etcd、ZooKeeper、Consul 等插件已迁移到独立仓库。
核心功能
- 01无需 proto 文件,可直接将 Go 方法暴露为 RPC 接口。
- 02支持 TCP、HTTP、QUIC 和 KCP 传输协议。
- 03支持 JSON、Protobuf、MessagePack 和原始字节编解码。
- 04提供点对点、ZooKeeper、etcd、Consul、mDNS 等服务发现方式。
- 05内置随机、轮询、一致性哈希等负载均衡及失败转移等容错策略。
适用场景
- 将 Go 后端拆分为通过 RPC 相互调用的微服务。
- 让其他语言编写的客户端通过 HTTP 网关调用 Go 服务。
- 构建需要服务发现和负载均衡的内部服务间通信。
收录于专题
标签
常见问题
- rpcx 是什么?
- 一个 Go 语言 RPC 微服务框架,支持可插拔的服务发现、多种传输协议和编解码器,并可通过 HTTP 跨语言调用。 rpcx 是一个用 Go 编写的 RPC 框架,设计上参考了阿里 Dubbo,用于把应用拆分为通过网络相互调用的服务。Go 函数可以直接暴露为 RPC 方法,无需编写 proto 文件,客户端通过简洁的 API 调用,并可选择负载均衡和容错策略。
- rpcx 可以免费使用吗?用的什么许可证?
- rpcx 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
- rpcx 还在维护吗?
- 半年内有更新。rpcx 最近一次提交是在 2026年9月3日。
- rpcx 适合用来做什么?
- 将 Go 后端拆分为通过 RPC 相互调用的微服务。 让其他语言编写的客户端通过 HTTP 网关调用 Go 服务。 构建需要服务发现和负载均衡的内部服务间通信。
- 在哪里获取 rpcx?
- 源代码和安装说明在 GitHub 上:https://github.com/smallnest/rpcx
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
4.2万2.6万JavaApache-2.0维护活跃更新于 4天前
基于 Spring Cloud 的服务治理框架,将 Spring Cloud 应用与 Polaris 服务发现和治理能力打通。
3293508JavaOther维护活跃更新于 11天前
基于 Java 的 API 网关,用于服务代理、协议转换和 API 治理,支持插件链与集中管理控制台。
8912+1 本周3111JavaApache-2.0更新于 19小时前
用于分布式系统开发的 Go 框架,涵盖 RPC、服务发现、消息、存储与配置,并支持智能体与工作流。
2.3万+1 本周2430GoApache-2.0更新于 9天前
开源的动态服务发现、配置管理与服务管理平台,面向云原生与微服务应用。
DevOps 与云#service-discovery#configuration-management#microservices#distributed-configuration#kubernetes
3.3万+9 本周1.3万JavaApache-2.0更新于 前天
Spring Boot 启动器,通过 @GrpcService 和 @GrpcClient 注解即可运行 gRPC 服务端与客户端,无需手动配置。
3709+1 本周853JavaApache-2.0更新于 3天前