将集中配置添加到我们的服务器

时间:2012-03-31 14:42:51

标签: configuration distributed

随着我们的系统的发展,越来越多的服务器和服务(不同类型和同一类型的多个实例需要进行微小的配置更改)。我们正在寻找一种“cetralized配置”解决方案,最好是现有的,我们不需要从scrtach开发。 这个想法是这样的,服务上升,它知道单个数据(它的类型+位置+版本+ serviceID或类似的东西)并联系一些中央服务,它将给它正确的配置(文件,对象或其他) 。 如果联机的服务找不到配置服务,它将使用缓存的配置或拒绝初始化(行为应该在它从谁或其他任何人在线获取的启动参数中指定) 配置服务应该是高度可用的,即一组服务器(ZooKeeper听起来像一个完美的候选者) 该服务最好支持继承的概念,允许服务类型的全局配置文件,然后通过其ID为服务的每个实例提供特定的覆盖或扩展。此外,它应支持配置版本控制之类的功能,允许为不同版本保留相同服务类型的不同配置,因为我们希望更多地依赖于并排部署服务。 等式的另一面是有一个配置管理工具连接到同一个集中配置服务,可以根据上述要求查看和更新​​所有配置。

我知道,如果我修改了将服务数据拉到配置数据的核心要求,将数据推送到它,我可以使用木偶或厨师之类的东西来管理所有内容。我必须说实话,我对这两个系统没什么经验(我们的IT团队有更多),但从我的调查中我可以说它似乎不适合这项工作。

是否存在与我上面描述的任何系统类似的系统?

2 个答案:

答案 0 :(得分:2)

我只有使用本土解决方案的经验,所以我的答案可能无法解决您的问题,但可能会帮助其他人。我们已经非常成功地使用Web服务器和SVN机器人进行配置管理。这个解决方案并不意味着你必须“从头开发”,但也不是一个交钥匙解决方案。

我们有多个Web服务器,每个Web服务器都以同步分钟的方式从SVN存储库刷新其配置。客户端将使用/type=...&location=...&version=...类型的HTTP参数向服务器发出请求。然后,必要时可以在视图中使用这些值来自定义配置。我们使用正在重新加载的Spring XML文件和标准field=value属性文件来完成此操作。

我们的系统只是拉动,尽管我们可以在必要时通过JMX触发拉动。

希望这有所帮助。

答案 1 :(得分:1)

Config4*(其中我是维护者)可以为您提供开箱即用的大部分功能,我怀疑您可以轻松地在其上构建剩余的功能

阅读“入门”手册的第2章和第3章,了解Config4 *的功能(不用担心,它们是非常简短的章节)。这样做可以帮助您确定Config4 *满足您需求的程度。

您可以在Config4*网站主页末尾附近找到指向PDF和HTML版本手册的链接。