Erlang:你如何重新加载应用程序env配置?

时间:2010-05-15 22:29:11

标签: version-control configuration erlang

如何重新加载应用程序的配置?或者,管理动态应用程序配置的好策略是什么?

例如,假设我有日志级别,我想在运行时更改它们。另外,我们假设这是许多此类选项之一。拥有一个“配置服务器”是否有意义,该配置服务器保存应用程序的其他部分的配置状态以进行查询?人们会这样做,还是只是弥补了?

2 个答案:

答案 0 :(得分:0)

我认为将所有配置数据保存在存储库(subversion,mercurial等)中并让应用程序每次启动时都下载它或尝试重新加载某些配置选项是合理的。这是集中式方法 - 但是您可以使用许多配置服务器来避免SPOF - 以及它:

  • 允许您跟踪变化,以便您 知道是谁放了这些以及他做了什么 (没人想要负责 不合适的配置);
  • 使您可以使用相同的配置 你所有的应用程序 网络;
  • 更改的简便性:您只需修改即可 配置并通知相关应用程序 使用gen_server:abcast电话或其他方式。
在阅读配置时,

proplists(3)非常有用。

答案 1 :(得分:0)

如果我的理解是正确的,问题如下:

您想要创建一个分布式,可扩展的系统,当然,Erlang是首选,因为它是为此目的而设计的。

  • 您将有几个节点将运行本地应用程序以及分布式应用程序。

  • 这里最简单的层次结构是为每个主要功能提供热备份。

  • 这可以通过实现分布式应用程序控制器来实现。

    • 最简单的示例是让服务器在节点上启动,而从服务器在配对节点上同时启动。

    • 分布式应用程序控制器有许多优点。

      • 简单的例子是通过引入新消息来不同地处理node_up消息,这些消息指示节点不仅是erlang VM就绪,而是所有重要的应用程序都在运行。通过这种方式,配对节点可以确保备用节点已就绪并且可以开始同步。

如果我误解了某些内容,请详细说明或评论。 祝你好运!