目前开发微服务用 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 给个星 。

5919 次点击
所在节点    Java
71 条回复
heqingpan
2023-09-28 15:00:22 +08:00
@salmon5 在注册中心中,两个协议性能差是挺大的。grpc 用链接本身做心跳,http 每个实列要单独请求做心跳。
wqhui
2023-09-28 15:06:12 +08:00
@heqingpan 我说的稳定性是指代码逻辑上的 bug ,这种东西很多时候只能靠大量的使用才能发现,还得有活跃社区及时修复,或者公司就有人能排查修复,但 rust 开发者不多见
heqingpan
2023-09-28 15:17:55 +08:00
@wqhui
理解,一些功能性的 bug 确实只有大量使用才能发现。
而对于非功能问题,rust 编译通过后基本不会有问题。这个就是大家说 rust 安全稳定的原因。

bug 数量不多的话,我还是能比较及时修复的。
ice
2023-09-28 15:55:53 +08:00
@pentilun rn 看着确实如 m,但是 macos 碰到 mac 了
silentsky
2023-09-28 16:02:01 +08:00
这种一般很少去迁移 毕竟服务太多
heqingpan
2023-09-28 16:20:20 +08:00
@silentsky
这个只需要换 nacos 服务。

验证通过后,kill 老服务,启动新服务。一分钟内完成切换。
winglight2016
2023-09-28 17:22:26 +08:00
@ZeroDu #52 我们不是啥大公司,k8s 都是我自己研究引入的,因为我们是 python 后台,没考虑过 spring cloud 。

我们的网关用的是 apisix ,怎么想都比 springgateway 效率高吧?

个人认为在 k8s 环境完全没有 spring cloud 的存在价值,k8s 环境还要什么服务注册、发现,也没有负载均衡、断路器这种需求。

我们也在考虑换到 java 后台,不过 springboot 已经足够了。我在看 spring security 和 config server ,其他组件都没有什么帮助。
Naccl
2023-09-28 19:38:32 +08:00
我真会试一下,nacos 太吃资源了,感觉很有应用场景,回头就把个人项目迁过来
heqingpan
2023-09-28 20:13:13 +08:00
欢迎试用,过程如果有遇到问题可以给我提 issues 。
8rmEHZ8WhVHVOb0E
2023-09-29 12:14:06 +08:00
您说的是 [etcd]( https://etcd.io/) 吗
heqingpan
2023-09-29 17:31:05 +08:00
@xiaomada

我说的是 nacos 。想确认用的人多不多,其中有多少人愿意试用,其选择背后的考量。

目前大体的信息已收集到,前期个人、小公司等对机器资源敏感的同学相对愿意试用。 (有人用,有价值,可以继续做)
规模大一些的,可能需要能证明其真的比较稳定可靠后才会考虑。(潜在的用户)

etcd 是一个键值数据库,从功能上它和 nacos 配置中心比较接近。
它也可以当注册中心来用,不过从原理上性能、可用性会比 nacos 的中心低一些(所以在 nacos 中注册、配置中心是两个不实现的模块)。

只是功能上相同,切换还是需要比较大的改造成本。
rnacos 是在功能和接口协议都做了兼容,切换过程应用是不需要做改造的。

这两个还是有区别的。

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

https://tanronggui.xyz/t/977787

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

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

© 2021 V2EX