Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

增加支持从git或svn读取配置文件(类似Spring Cloud Config) #5797

Open
winsoar opened this issue May 20, 2021 · 7 comments
Open

Comments

@winsoar
Copy link

winsoar commented May 20, 2021

Is your feature request related to a problem? Please describe.

在nacos中保存配置文件可能会导致的问题

  1. 有可能会因为服务器损坏导致nacos中的配置文件丢失(或者保存配置文件的数据库丢失);
  2. 代码和配置文件不在一起保存,增加了复杂性,也有一定的丢失风险。

Problems that may result from saving configuration files in Nacos

  1. The configuration file in Nacos may be lost (or the database where the configuration file is saved) due to the server damage;
  2. The code and configuration file are not saved together, which increases the complexity and also has a certain risk of loss.

Describe the solution you'd like

增加支持从git或svn读取配置文件(类似Spring Cloud Config)。

Add support for reading configuration files from git or SVN (similar to spring cloud config).

@zhfish
Copy link
Contributor

zhfish commented May 21, 2021

支持,但是根据配置中心的特性
如果每次被读取都从git拉配置,会很慢并使可靠性下降
如果每次git更新nacos都接收hook更新本地缓存,hook这里就成了不可靠的点
有没有一种优雅的模式,可以在维持可靠性的基础上,用git存配置呢?
我觉得更像jenkins而不是spring cloud config
如果有讨论结果我可以提供pr
@KomachiSion @winsoar

@KomachiSion
Copy link
Collaborator

我理解这个只是配置的存储问题。存在数据库和git/svn区别应该只是实现上的问题。

目前配置存储和数据库耦合比较严重,可能需要先处理解耦的问题,才能更好的使用git来进行配置存储。

@zhfish
Copy link
Contributor

zhfish commented May 25, 2021

先解决解耦这个比较认同
但以不同形式存储也会有效率/可靠性的差异,可能也是实现之前需要考虑的

@KomachiSion
Copy link
Collaborator

但以不同形式存储也会有效率/可靠性的差异,可能也是实现之前需要考虑的

那就是具体实现去考虑的事情,即使解耦之后,应该也还是只会默认提供mysql和derby两种数据库类型,如果需要git/svn,可能需要通过插件开发来引入。不会作为默认提供。

@brotherlu-xcq
Copy link
Collaborator

config里面可以默认提供数据库方式实现。如果社区对于这块呼声高的情况下,我们可不可以考虑提供各种方式实现的jar包,作为一个plugin的一样提供给用户选择。

@moonciki
Copy link

moonciki commented Oct 21, 2021

强烈建议配置中心支持git或者外部文件方式,

  1. 因为git可以保留所有历史,比nacos系统自带的历史强大太多,比如可以通过git历史追溯到具体某一行是谁做的什么修改。
  2. 直接操作文件,比修改数据库内容要方便的多,比如做一个全局替换等操作,并且基于ide 做配置文件修改,还能起到格式初步校验的目的。
  3. git分布式存储保证了配置文件的安全性。
  4. 可以直接兼容 Spring Cloud Config 的git 仓库,而不是利用导入的方式。
    综上种种,强烈建议添加git读取配置文件支持

@moonciki
Copy link

探讨一下,该方案是否可行
https://www.cnblogs.com/moonciki/articles/16566937.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants