nacos-group / r-nacos

Nacos server re-implemented in Rust.
https://r-nacos.github.io/docs/
Apache License 2.0
807 stars 84 forks source link

大佬有预留持久化的接口吗?或者添加插件类似的东西 #89

Open 1321731966 opened 3 months ago

1321731966 commented 3 months ago

例如支持mysql,postgres这些数据库做持久化以及检索

heqingpan commented 3 months ago

r-nacos集群需要用raft分布式协议,raft协议本身就已经支持持久化。

多写一个数据库持久化,多依赖一个系统、多写一遍数据。没有带来什么优点,部署便捷、性能都有所降低。

所以r-nacos运行时设计上是不会再去支持额外的数据库。(和etcd,redis类似)。

heqingpan commented 3 months ago

而考虑到用户对数据备份、恢复、迁移、分析等需要。

后面考虑支持把r-nacos 中的数据导出到一份通用格式的中间文件,初定为sqlite数据库文件。

用户可以通过中间文件完成r-nacos数据的备份,恢复。这部分r-nacos系统计划直接支持。

也可以自己把数据解析导入mysql,pg等数据库中做分析。(这部分r-nacos不直接支持)

FlowerBirds commented 3 months ago

大家目前用的nacos是将配置存储到mysql数据库,我们在客户现场安装时都是通过sql语句将配置初始化进去,减少人为操作。如果能将r-nacos的数据导出和在另外一个环境后台导入,那对于部署运维就相对比较方便了

heqingpan commented 3 months ago

目前r-nacos与nacos系统之间,配置中心的数据是可以按命名空间批量导出,导入做数据迁移的。只是多个命名空间要操作多次,命名空间一般不多,迁移工作量应该也还好。

asmpg commented 3 months ago

大家目前用的nacos是将配置存储到mysql数据库,我们在客户现场安装时都是通过sql语句将配置初始化进去,减少人为操作。如果能将r-nacos的数据导出和在另外一个环境后台导入,那对于部署运维就相对比较方便了

我从 nacos切换到rnacos时候,确实有些不适应; 如你所说, 以前都是以sql形式导入mysql,再启动, 那时候觉得,真是费事啊.

后来我部署的越来越多, rnacos的优势就体现出来了. 完全可以把 rnacos和数据目录一起打包, 到部署环境一键运行, 很方便的.

我现在已经在10-15台服务器上部署了rnacos的稳定版本, 整体部署体验是比nacos要好的(包括systemd 服务化以及配置文件的导入体验).

另外, 就我个人体验而言, 配置中心数据存文件比存sql要好一些(比如开发时候可以快速查看配置项).