在多台服务器(~20)上运行 Rails 应用程序,我希望能够从一个位置管理配置文件(主要是 *.yml,还有 SSL pem/certs 文件和其他基于文本的文件),以便对文件进行任何更改,或新文件,添加到所有服务器。
我也想通过 git 拥有这个内容源控制器。
更新不频繁,我想保持应用程序不变,以便从文件中读取数据,就像现在一样。
有什么可用的解决方案,Zookeeper 适合吗?
在多台服务器(~20)上运行 Rails 应用程序,我希望能够从一个位置管理配置文件(主要是 *.yml,还有 SSL pem/certs 文件和其他基于文本的文件),以便对文件进行任何更改,或新文件,添加到所有服务器。
我也想通过 git 拥有这个内容源控制器。
更新不频繁,我想保持应用程序不变,以便从文件中读取数据,就像现在一样。
有什么可用的解决方案,Zookeeper 适合吗?
我们使用 ZooKeeper 进行实时设置。一个想法是使用注册表。
假设您有一个名为 Arst 的组件。
你可以有一些配置 - 让我们说这些文件夹下的 redis 每个代表一个不同的实例:
/dbs/redis/0 (host, port, db, password as children)
/dbs/redis/1 (host, port, db, password as children)
/dbs/redis/prod (host, port, db, password as children)
如果你的组件 Arst 需要使用实例 0,你可以有一个这样的注册表:
/arst/redis/0
如果您想添加 1,只需添加节点,应用程序中的子手表将为您更新内容而无需重新启动。但这并不是很简单,而且管理设置对于像 QA 这样的团队来说可能是一件痛苦的事情。
所以我也会在控制台上帮助解决这个问题。我们将开源一些部分。