RPCX 在 Go 语言中的分布式 RPC 服务框架

发布于 2020-10-26 15:21:10 字数 1738 浏览 1813 评论 0

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 的通讯协议性能更好。

相关链接

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

留蓝

文章 0 评论 0

18790681156

文章 0 评论 0

zach7772

文章 0 评论 0

Wini

文章 0 评论 0

ayeshaaroy

文章 0 评论 0

初雪

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文