rpcx - 分布式RPC服务框架


Apache
跨平台
Google Go

软件简介

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/rpcgrpc-
go
gorilla-
rpc
等,为什么还要开发 rpcx 呢?

原因在于尽管这些框架都是为Go实现的RPC库,但是它们的功能比较单一,只是实现了点对点(End-to-
End)的通讯框架。缺乏服务治理的功能,比如服务注册和发现、 负载均衡、容灾、服务监控等功能。因此我基于Go
net/rpc框架实现了一个类似Dubbo的分布式框架。

和rpcx比较类似的Go RPC框架是go-micro,但是rpcx提供了更丰富的功能,基于TCP的通讯协议性能更好。