目前开发微服务用 nacos 做注册、配置中心的同学多吗? 如果有一个用系统级语言重写,性能更高、占用资源更小的版本有同学愿意试用吗?

2023-09-28 09:22:11 +08:00
 heqingpan

我之前用 rust 重写了 nacos ,开源一段时间,收到的反馈不多。

想确认是用 nacos 的人不多,还是不知道或者知道但没有试用动力的人比较多。


下面附上我重写 nacos 版本简介:

https://github.com/heqingpan/rnacos

rnacos 是一个用 rust 实现的 nacos 服务。

rnacos 包含注册中心、配置中心、web 管理控制台功能,支持单机、集群部署。

rnacos 设计上完全兼容最新版本 nacos 面向 client sdk 的协议(包含 1.x 的 http OpenApi ,和 2.x 的 grpc 协议), 支持使用 nacos 服务的应用平迁到 rnacos 。

rnacos 相较于 java nacos 来说,是一个提供相同功能,启动更快、占用系统资源更小、性能更高、运行更稳定的服务。

性能:

模块 场景 单节点 qps 集群 qps 总结
配置中心 配置写入,单机模式 1.5 万 1.5 万
配置中心 配置写入,集群模式 1.8 千 1.5 千 接入 raft 后没有充分优化,待优化,理论上可接近单机模式
配置中心 配置查询 8 万 n*8 万 集群的查询总 qps 是节点的倍数
注册中心 服务实例注册,http 协议 1.2 万 1.0 万 注册中心单机模式与集群模式写入的性能一致
注册中心 服务实例注册,grpc 协议 1.2 万 1.2 万 grpc 协议压测工具没有支持,目前没有实际压测,理论不会比 http 协议低
注册中心 服务实例心跳,http 协议 1.2 万 1.0 万 心跳是按实例计算和服务实例注册一致共享 qps
注册中心 服务实例心跳,grpc 协议 8 万以上 n*8 万 心跳是按请求链接计算,且不过注册中心处理线程,每个节点只需管理当前节点的心跳,集群总心跳 qps 是节点的倍数
注册中心 查询服务实例 3 万 n*3 万 集群的查询总 qps 是节点的倍数

收到用户反馈信息,会给我更多的动力。

如果试用过程中有问题可以到 github 给我提 issues 。

如果愿意试用或喜欢的同学就到 github rnacos 给个星 。

5870 次点击
所在节点    Java
71 条回复
winglight2016
2023-09-28 10:13:46 +08:00
有 k8s ,nacos 没什么用了。如果只是配置中心,和 spring 的 config server 比有什么优势吗?
heqingpan
2023-09-28 10:14:27 +08:00
@wqhui rust 写的比 java 写稳定性上会更好。
ZeroDu
2023-09-28 10:19:50 +08:00
@winglight2016 #21 spring 那个估计都没多少人用。nacos 有后台管理面板。配置修改等等都很舒服。而且注册中心+配置中心合一,无缝切换阿里云。
heqingpan
2023-09-28 10:21:29 +08:00
@pannanxu
@Kilerd
感谢反馈。
社区、生态确定比较重要。
这是一个循环依赖问题,生态好了用的人会多,用的人多了反过来生态也会变好。
ZeroDu
2023-09-28 10:21:29 +08:00
你这个可以联系一下官方社区,看看能否给加个引流连接
heqingpan
2023-09-28 10:24:03 +08:00
@winglight2016
功能上比 config server 强的多。
rnacos 在占用资源、性能、稳定性上都比它好很多。
pannanxu
2023-09-28 10:28:42 +08:00
@heqingpan #24 作者可以看看腾讯的 polaris mesh ,一站式解决方案。但是感觉没啥人用自己也不敢在生产尝试。
kerb15
2023-09-28 10:33:21 +08:00
如果只用配置中心的话,单机版的资源占用是多少
litchinn
2023-09-28 10:35:47 +08:00
对资源和性能有要求的应该会选择 consul ,你可以放一下你的项目和这两者的 benchmark 对比
xingjue
2023-09-28 10:37:32 +08:00
为啥不用 go 写 go 明显云原生生态霸主
heqingpan
2023-09-28 10:45:53 +08:00
@kerb15 25M 内存
heqingpan
2023-09-28 10:48:04 +08:00
@xingjue go 有 gc ,性能上比不过 rust 。
rust 写云原生应用也很合适的。
shalk
2023-09-28 10:50:23 +08:00
- 用 rust 实现,反而维护难度更大。
- 配置中心,性能不是问题
- 没有背书
很难有意愿,如果文档特别好,可能会好一些,nacos 的文档写的一般
zzl22100048
2023-09-28 10:52:07 +08:00
@heqingpan #19
>> 所有的集群节点都需要设置 RNACOS_RAFT_NODE_ID,RNACOS_RAFT_NODE_ADDR ,其中不同节点的 node_id 和 node_addr 不能相同; node_id 为一个正整数,node_addr 为 ip:grpc_port

文档里面说 node_id 要正整数,其实可以为 0 ,对吗
heqingpan
2023-09-28 10:53:26 +08:00
@kerb15 内存初始 25M 左右,具体和配置内容有关。cpu 默认小于 1% 压测 4 万 qps 时占用 30%左右,具体的和机器有关。
heqingpan
2023-09-28 10:54:11 +08:00
@zzl22100048 0 其实也是可以的
heqingpan
2023-09-28 11:02:26 +08:00
@shalk
确定,熟悉 rust 的开发者相对较少;开发效率上其实还可以的。
感谢反馈,文档会持续完善。
allenzhangSB
2023-09-28 11:03:31 +08:00
@heqingpan #22 稳定性和用什么语言无关
xzm429438709
2023-09-28 11:10:21 +08:00
安全和稳定方面 rust 可以的,但是关键维护很难,出稳定,不懂 rust 怎么办,官方没这么快解决的……
xzm429438709
2023-09-28 11:10:46 +08:00
安全和稳定方面 rust 可以的,但是关键维护很难,出问题,不懂 rust 怎么办,官方没这么快解决的……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/977787

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX