V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
heqingpan
V2EX  ›  程序员

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

  •  1
     
  •   heqingpan · 2024-05-06 09:17:55 +08:00 · 4097 次点击
    这是一个创建于 406 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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


    下面是 r-nacos 的说明:

    简介

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

    资源使用情况

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

    使用反馈与说明

    • 目前已经有部分用户使用于生产环境;比较多有用户使用于测试环境,想要观察一段时间后,如果稳定没有问题再考虑上生产;
    • 用户反馈联系运行几个月都很稳定;
    • 收到的缺陷比较少,有几个是非主链接上的功能问题(因为是用 rust 写的,基本没有遇到非功能性问题)。具体的可以看 github 上的 issues

    性能说明

    模块 场景 单节点 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

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

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


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

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

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

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

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

    可能是我接触的少,不知道 rust 有哪些好用的库
    Xrall
        19
    Xrall  
       2024-05-06 11:39:41 +08:00
    看了一下介绍以及评论感觉还可以 。开发测试环境可以用来试试。没有 nacos 那些一堆莫名其妙的破问题就好。特别是迭代问题 nacos 真的让人糟心。
    rrfeng
        20
    rrfeng  
       2024-05-06 11:46:33 +08:00
    alibaba/nacos ?
    povsister
        21
    povsister  
       2024-05-06 11:53:12 +08:00
    天下苦 java 久矣
    heqingpan
        22
    heqingpan  
    OP
       2024-05-06 11:58:42 +08:00 via Android
    @twofox

    我对 rust 库的了解也不算很多,一般都是以目标场景为导向去找对应的库。有些能找到合适的;有些找到但不完全够用,这时要自己补充;有些就是没有自己直接写一个。目前生态很多库基本都有了


    关于 web 开发,我主要以前后端方式写。这种模式,只要使用 http 接口即可。有很多成熟的框架,比如 axum,actix-web 等。

    你提的流程引擎和 office 操作库,我之前没有用到,没去了解。你可以自己到 crates 去找找。
    heqingpan
        23
    heqingpan  
    OP
       2024-05-06 12:02:25 +08:00 via Android
    @rrfeng 是的。
    r-nacos 是用 rust 重写 alilaba/nacos ,协议完全兼容,支持使用 nacos 的应用不改代码直接平迁到 r-nacos 。
    heqingpan
        24
    heqingpan  
    OP
       2024-05-06 12:04:35 +08:00 via Android
    @zpfhbyx
    @Xrall

    欢迎试用,目前从收到的反馈来看,已经比较稳定。主链路基本不会有什么问题。
    IdJoel
        25
    IdJoel  
       2024-05-06 12:19:02 +08:00   ❤️ 1
    太好了,真不喜欢 java 那套东西
    rlds
        26
    rlds  
       2024-05-06 12:40:35 +08:00
    个人使用受资源限制,占用太大的 nacos 是有点吃不消,r-nacos 能够将占用限制到 10 多 M ,那还是可以先用来做开发试用,看看具体的稳定性,以及会不会出现什么意料之外的 bug ,真的没啥重大问题,稳定后还是可以考虑上生产环境的。
    heqingpan
        27
    heqingpan  
    OP
       2024-05-06 13:01:24 +08:00 via Android
    @rlds 感谢反馈。我个人也是建议先在测试环境使用,经过充分验证其稳定性后,再考虑上生产。

    欢迎试用,使用过程有问题或建议都可以提 issue 。
    monkeydream
        28
    monkeydream  
       2024-05-06 14:05:31 +08:00
    这个可以有,生产部署 3 个 java 的 nacos 内存直接 5-6 个 G 了
    someonedeng
        29
    someonedeng  
       2024-05-06 14:49:56 +08:00
    这资源占用爱了
    cnzjl
        30
    cnzjl  
       2024-05-06 15:05:10 +08:00
    mark,这类中间件使用 rust 重写真是太棒了
    huzhizhao
        31
    huzhizhao  
       2024-05-06 15:19:33 +08:00
    支持一下,看这个占用是很棒的啊。
    可惜公司的技术栈不是走这个的,不然可以推荐一下给老大了。
    NXzCH8fP20468ML5
        32
    NXzCH8fP20468ML5  
       2024-05-06 15:32:22 +08:00 via Android
    早就该用 rust 重写各大中间件了
    这里点名 kafka ,hdfs ,hbase ,es 。
    heqingpan
        33
    heqingpan  
    OP
       2024-05-06 16:01:47 +08:00 via Android
    @monkeydream
    @someonedeng

    资源占用低是 r-nacos 最大的优点之一😁
    heqingpan
        34
    heqingpan  
    OP
       2024-05-06 16:03:18 +08:00 via Android
    @huzhizhao 感谢支持与反馈
    heqingpan
        35
    heqingpan  
    OP
       2024-05-06 16:05:47 +08:00 via Android
    @cnzjl
    @xxfye

    对比下来,用 rust 重写原 java 写的中间件,确实收益不错😁
    Heroininu
        36
    Heroininu  
       2024-05-06 16:31:16 +08:00
    正在用,作为个人和小型公司的方案非常合适,给开发者点赞顺便 rust yyds
    chenset
        37
    chenset  
       2024-05-06 16:44:34 +08:00
    哇哦. nice !!!
    aa51513
        38
    aa51513  
       2024-05-06 16:49:47 +08:00 via Android
    我看了一下项目介绍以及诸位的评论,感觉很不错的样子 。准备在测试环境试试。
    yusheng88
        39
    yusheng88  
       2024-05-06 17:02:56 +08:00
    感觉 rust 才是真正的 better c .
    支持大佬使用 rust 重构中间件,确实能起到节省内存效果。
    RainCats
        40
    RainCats  
       2024-05-06 17:10:31 +08:00
    内存占用这么小?果断试一下,开发用的老机子,每一兆内存都是宝贵的,再次声讨一下,垃圾公司
    NeedI09in
        41
    NeedI09in  
       2024-05-06 17:28:47 +08:00
    可以,我去给你点个🌟
    heqingpan
        42
    heqingpan  
    OP
       2024-05-06 18:06:39 +08:00 via Android
    @Heroininu
    @chenset
    @NeedI09in
    感谢支持与反馈😁
    heqingpan
        43
    heqingpan  
    OP
       2024-05-06 18:08:26 +08:00 via Android
    @aa51513
    @RainCats
    欢迎试用,过程遇到问题可以反馈或提 issue
    EricSTG
        44
    EricSTG  
       2024-05-07 14:56:43 +08:00
    🐄🍺
    RainCats
        45
    RainCats  
       2024-05-08 14:08:00 +08:00
    @heqingpan 页面可以加上回车响应么,总要移鼠标去点按钮
    heqingpan
        46
    heqingpan  
    OP
       2024-05-08 15:54:16 +08:00 via Android
    哪个页面,是指登陆页面吗?
    gitxuzan
        47
    gitxuzan  
       280 天前
    特别不喜欢 java 那套中间件,内存太大了,谢谢博主的开源产品
    heqingpan
        48
    heqingpan  
    OP
       279 天前
    @gitxuzan 感谢支持,过程有什么问题或建议可以找我或者到 github 提 issue 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3024 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 12:26 · PVG 20:26 · LAX 05:26 · JFK 08:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.