用 rust 重写的配置注册中心 r-nacos 已加入 nacos 官方社区。使用配置注册中心的同学,你们会愿意了解试用吗?

2024-05-06 09:17:55 +08:00
 heqingpan

关于 r-nacos,去年有在本站调研过使用的意愿。 收到反馈是: 个人、小公司等对机器资源敏感的同学相对愿意试用(有人用,有价值,可以继续做);规模大一些的,可能需要能证明其真的比较稳定可靠后才会考虑(潜在的用户)。

经过一段时间的持续迭代,在项目加入 nacos 官方社区之际,再来 v 站推广并调研下:使用配置中心或注册中心的同学你们会愿意试用用 rust 重写的 r-nacos 吗?


下面是 r-nacos 的说明:

简介

r-nacos 是一个用 rust 实现的 nacos 服务。相较于 java nacos 来说,是一个提供相同功能,启动更快、占用系统资源更小、性能更高、运行更稳定的服务。 其设计上完全兼容最新版本 nacos 面向 client sdk 的协议支持使用 nacos 服务的应用不用修改代码直接平迁到 r-nacos 。

资源使用情况

演示系统中接入接近 5 千个配置,450 个服务实例,服务使用的内存在 15M 左右。

使用反馈与说明

性能说明

模块 场景 单节点 qps/tps 集群 qps/tps 总结/备注
配置中心 配置写入,集群模式 1.76 万 7.6 千 集群写入压测是在同一台电脑运行 3 个节点,如果换成多个机器部署,tps 应该还能有所提升。
配置中心 配置查询 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 是节点的倍数

项目地址

https://github.com/nacos-group/r-nacos

4398 次点击
所在节点    程序员
48 条回复
saka0609
2024-05-06 09:20:18 +08:00
正在用
heqingpan
2024-05-06 09:30:20 +08:00
@saka0609 欢迎使用,有什么问题或建议可以到 github 提 issue 。
cksspk
2024-05-06 09:42:17 +08:00
在用在用,跟动不动占用 1G 多内存的 nacos 相比,r-nacos 几十 M 真的非常推荐。
cksspk
2024-05-06 09:43:25 +08:00
有个问题,admin 管理界面的验证码能不能设置成可关闭,每次登录都要输入太麻烦了
suqiuluck
2024-05-06 09:43:31 +08:00
👍不错
heqingpan
2024-05-06 09:56:00 +08:00
@cksspk 这个目前也是支持的,有个配置 RNACOS_ENABLE_NO_AUTH_CONSOLE 可以开启无校验控制台。具体的你也可以看对应的文档说明。
28Sv0ngQfIE7Yloe
2024-05-06 09:59:27 +08:00
请问启动更快和占用更小都有数据体现,readme 里的「运行更稳定」是通过什么指标得出的结论?
muyuanqiang7
2024-05-06 10:09:44 +08:00
开发环境准备试试
lllllliiii
2024-05-06 10:10:33 +08:00
已经用到开发环境 3 ~ 4 个月了,体验不错
heqingpan
2024-05-06 10:15:58 +08:00
@Morii
启动更快是指启动后,在一秒内可以正常访问接口,nacos 的话自测差不多在 8 秒左右才能正常访问。(这个是人个使用记录,没有用工具做严格对比)

资源占用更小,上面已经给出例子:接入接近 5 千个配置,450 个服务实例,服务使用的内存在 15M 左右。nacos 默认启动后内存就大于 600M 。


运行更稳定,在连续长时间运行(超过一个月)和经过压测场景下,r-nacos 的(内存与 cpu )资源占用都很稳定。nacos 的内存起伏比较大,压测时有时还遇到未及时响应的情况。
28Sv0ngQfIE7Yloe
2024-05-06 10:17:17 +08:00
@heqingpan #10

谢谢回答,准备调研一下。
ilaipi
2024-05-06 10:25:09 +08:00
大佬,为啥两类 docker 包会影响运行性能?
PaulSamuelson
2024-05-06 10:38:28 +08:00
天下苦 spring-boot 久已😭
heqingpan
2024-05-06 11:13:59 +08:00
@ilaipi 因为 gnu 与 musl 两类包底层的 c 标准库实现不同,一些场景 gnu 比 musl 性能高一些。

不过也差不太多,如果对性能不是非常敏感,用哪个都可以。
heqingpan
2024-05-06 11:14:34 +08:00
@fzdwx 感谢反馈
heqingpan
2024-05-06 11:18:11 +08:00
@duanquanwu spring-boot 写应用除了内存占用比较大,其它的都挺好的。

不过中间件的话,人个觉得还是用 rust 更好😀
zpfhbyx
2024-05-06 11:33:49 +08:00
mark 一下, 很适合当自己的配置中心.
twofox
2024-05-06 11:36:14 +08:00
我也在学 rust 。但是作为一个 Java web 开发,发现用 rust 开发一个 web 应用,生态好像还是不行。

rust 不适合用来开发这些业务多的 web 项目,例如 BPM 流程引擎、对 office 文件的一些操作库

可能是我接触的少,不知道 rust 有哪些好用的库
Xrall
2024-05-06 11:39:41 +08:00
看了一下介绍以及评论感觉还可以 。开发测试环境可以用来试试。没有 nacos 那些一堆莫名其妙的破问题就好。特别是迭代问题 nacos 真的让人糟心。
rrfeng
2024-05-06 11:46:33 +08:00
alibaba/nacos ?

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

https://www.v2ex.com/t/1037929

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

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

© 2021 V2EX