RPCX 在 Go 语言中的分布式 RPC 服务框架
rpcx是一个类似阿里巴巴 Dubbo 和微博 Motan 的分布式的RPC服务框架,基于 Golang net/rpc 实现。最好的Go语言的RPC服务治理框架,快、易用却功能强大。
特点
简单易用
易于入门, 易于开发, 易于集成, 易于发布, 易于监控
高性能
性能远远高于 Dubbo、Motan、Thrift 等框架,是 gRPC 性能的两倍
交叉平台,交叉语言
可以容易部署在Windows/Linux/MacOS 等平台,支持各种编程语言的调用
服务发现
除了直连外,还支持 Zookeeper、Etcd、 Consul、mDNS 等注册中心
服务治理
支持 Failover、 Failfast、 Failtry、Backup 等失败模式,支持 随机、 轮询、权重、网络质量, 一致性哈希,地理位置等路由算法
简介
与 gRPC 比较,完胜 gRPC, 更不用说其它的老的 RPC 框架了。
谈起分布式的 RPC 框架,比较出名的是阿里巴巴的 dubbo,包括由当当网维护的 dubbox。 不知道 dubbo 在阿里的内部竞争中败给了 HSF,还是阿里有意将其闭源了,官方的代码使用的 spring 还停留在 2.5.6.SEC03 的版本,dubbox 的 spring 也只升级到 3.2.9.RELEASE。 不管怎样,dubbo 还是在电商企业得到广泛的应用,京东也有部分在使用 dubbo 开发。
本项目rpcx的目标就是实现一个 Go 生态圈的 Dubbo,为 Go 生态圈提供一个分布式的、多插件的、带有服务治理功能的产品级的 RPC 框架。
Go 生态圈已经有一些RPC库,如官方的 net/rpc、grpc-go、gorilla-rpc 等,为什么还要开发 rpcx 呢?
原因在于尽管这些框架都是为 Go 实现的 RPC 库,但是它们的功能比较单一,只是实现了点对点 End-to-End 的通讯框架。缺乏服务治理的功能,比如服务注册和发现、 负载均衡、容灾、服务监控等功能。因此我基于 Go net/rpc 框架实现了一个类似 Dubbo 的分布式框架。
和 rpcx 比较类似的 Go RPC 框架是 go-micro,但是 rpcx 提供了更丰富的功能,基于 TCP 的通讯协议性能更好。
相关链接
- 中文文档:https://www.wenjiangs.com/docs/rpcx
以上是 RPCX 在 Go 语言中的分布式 RPC 服务框架 的全部内容, 来源链接: utcz.com/p/232768.html