随着我们的系统的发展,越来越多的服务器和服务(不同类型和同一类型的多个实例需要进行微小的配置更改)。我们正在寻找一种“cetralized配置”解决方案,最好是现有的,我们不需要从scrtach开发。 这个想法是这样的,服务上升,它知道单个数据(它的类型+位置+版本+ serviceID或类似的东西)并联系一些中央服务,它将给它正确的配置(文件,对象或其他) 。 如果联机的服务找不到配置服务,它将使用缓存的配置或拒绝初始化(行为应该在它从谁或其他任何人在线获取的启动参数中指定) 配置服务应该是高度可用的,即一组服务器(ZooKeeper听起来像一个完美的候选者) 该服务最好支持继承的概念,允许服务类型的全局配置文件,然后通过其ID为服务的每个实例提供特定的覆盖或扩展。此外,它应支持配置版本控制之类的功能,允许为不同版本保留相同服务类型的不同配置,因为我们希望更多地依赖于并排部署服务。 等式的另一面是有一个配置管理工具连接到同一个集中配置服务,可以根据上述要求查看和更新所有配置。
我知道,如果我修改了将服务数据拉到配置数据的核心要求,将数据推送到它,我可以使用木偶或厨师之类的东西来管理所有内容。我必须说实话,我对这两个系统没什么经验(我们的IT团队有更多),但从我的调查中我可以说它似乎不适合这项工作。
是否存在与我上面描述的任何系统类似的系统?
答案 0 :(得分:2)
我只有使用本土解决方案的经验,所以我的答案可能无法解决您的问题,但可能会帮助其他人。我们已经非常成功地使用Web服务器和SVN机器人进行配置管理。这个解决方案并不意味着你必须“从头开发”,但也不是一个交钥匙解决方案。
我们有多个Web服务器,每个Web服务器都以同步分钟的方式从SVN存储库刷新其配置。客户端将使用/type=...&location=...&version=...
类型的HTTP参数向服务器发出请求。然后,必要时可以在视图中使用这些值来自定义配置。我们使用正在重新加载的Spring XML文件和标准field=value
属性文件来完成此操作。
我们的系统只是拉动,尽管我们可以在必要时通过JMX触发拉动。
希望这有所帮助。
答案 1 :(得分:1)