如何重新加载应用程序的配置?或者说,有哪些管理动态应用程序配置的好策略?
例如,假设我有日志级别,并且我想在运行时更改它们。另外,假设这是许多类似选项之一。是否有意义建立一个“配置服务器”,保存其他部分应用程序要查询的配置状态?人们是否这样做过,还是我自己瞎编的?
如何重新加载应用程序的配置?或者说,有哪些管理动态应用程序配置的好策略?
例如,假设我有日志级别,并且我想在运行时更改它们。另外,假设这是许多类似选项之一。是否有意义建立一个“配置服务器”,保存其他部分应用程序要查询的配置状态?人们是否这样做过,还是我自己瞎编的?
我相信将所有配置数据存储在存储库(如Subversion,Mercurial等)中并在应用程序每次启动或尝试重新加载其配置选项时下载它是合理的。这是集中化方法 - 但是您可以有多个配置服务器以避免 SPOF,并且它:
gen_server:abcast
调用或其他手段通知相关应用程序即可。proplists(3)
在读取配置时非常有用。
如果我理解正确,问题如下:
您想创建一个分布式、可扩展的系统,当然Erlang是首选,因为它是为这些目的而设计的。
您将有几个节点,这些节点将运行本地应用程序和分布式应用程序。
这里最简单的层次结构是为每个主要功能设置热备份。
这可以通过实现分布式应用程序控制器来实现。
最简单的例子是在一个节点上启动服务器,同时在伙伴节点上同时启动从服务器。
分布式应用程序控制器有许多优点。
如果我误解了什么,请详细说明或评论。 祝你好运!