RPCX 在 Go 语言中的分布式 RPC 服务框架 - 文章教程

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

发布于 2020-10-26 字数 2289 浏览 1316 评论 0

rpcx是一个类似阿里巴巴 Dubbo 和微博 Motan 的分布式的RPC服务框架,基于 Golang net/rpc 实现。最好的Go语言的RPC服务治理框架,快、易用却功能强大。

RPCX 在 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 语言中的分布式 RPC 服务框架

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

相关链接

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

目前还没有任何评论,快来抢沙发吧!

关于作者

JSmiles

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

2583 文章
29 评论
84935 人气
更多

推荐作者

猫性小仙女

文章 1 评论 0

qq_VO6LhT

文章 0 评论 0

猿舌电影

文章 0 评论 0

7556275422

文章 0 评论 0

YYQ_139

文章 0 评论 0