rpcx是一个类似阿里巴巴Dubbo 和微博Motan 的分布式的RPC服务框架,基于Golang net/rpc实现。
与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.oschina.net/p/rpcx