Repolode
smallnest

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 数据每日更新。

相关项目