rpcx 分布式RPC服务框架 rpcx

blov • 9116 次点击    
这是一个分享于 的项目,其中的信息可能已经有所发展或是发生改变。
rpcx是一个类似阿里巴巴 [Dubbo](https://www.oschina.net/p/dubbo) 和微博 [Motan](https://www.oschina.net/p/motan-weibo) 的分布式的RPC服务框架,基于Golang net/rpc实现。 [![吞吐率](https://static.oschina.net/uploads/img/201701/31092925_nmK2.png)](https://github.com/smallnest/rpcx/blob/master/_documents/throughput.png) [![超低的延迟Latency](https://static.oschina.net/uploads/img/201701/31092926_r7Bh.png)](https://github.com/smallnest/rpcx/blob/master/_documents/benchmark.png) 与gRPC比较,完胜gRPC, 更不用说其它的"老"的RPC框架了。 谈起分布式的RPC框架,比较出名的是阿里巴巴的dubbo,包括由当当网维护的dubbox。 不知道dubbo在阿里的内部竞争中败给了HSF,还是阿里有意将其闭源了,官方的代码使用的spring还停留在2.5.6.SEC03的版本,dubbox的spring也只升级到3.2.9.RELEASE。 不管怎样,dubbo还是在电商企业得到广泛的应用,京东也有部分在使用dubbo开发。 本项目[rpcx](https://github.com/smallnest/rpcx)的目标就是实现一个Go生态圈的Dubbo,为Go生态圈提供一个分布式的、多插件的、带有服务治理功能的产品级的RPC框架。 Go生态圈已经有一些RPC库,如官方的[net/rpc](https://golang.org/pkg/net/rpc/)、[grpc-go](https://github.com/grpc/grpc-go)、[gorilla-rpc](http://www.gorillatoolkit.org/pkg/rpc)等,为什么还要开发**rpcx**呢? 原因在于尽管这些框架都是为Go实现的RPC库,但是它们的功能比较单一,只是实现了点对点(End-to-End)的通讯框架。缺乏服务治理的功能,比如服务注册和发现、 负载均衡、容灾、服务监控等功能。因此我基于Go net/rpc框架实现了一个类似Dubbo的分布式框架。 和rpcx比较类似的Go RPC框架是[go-micro](https://github.com/micro/go-micro),但是rpcx提供了更丰富的功能,基于TCP的通讯协议性能更好。
授权协议:
Apache
开发语言:
Google Go 查看源码»
操作系统:
跨平台
9116 次点击  ∙  1 赞  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传