Эрланг: Как перезагрузить конфигурацию приложения env? - PullRequest
5 голосов
/ 16 мая 2010

Как перезагрузить конфигурацию приложения? Или каковы хорошие стратегии для управления динамической конфигурацией приложения?

Например, допустим, у меня были уровни журнала, и я хотел изменить их во время выполнения. Также предположим, что это один из многих таких вариантов. Имеет ли смысл иметь «сервер конфигурации», который хранит состояние конфигурации для запросов других частей приложения? Люди это делают или я только что выдумал?

Ответы [ 2 ]

0 голосов
/ 16 мая 2010

Если мое понимание верно, проблема заключается в следующем:

Вы хотите создать распределенную, масштабируемую систему и, конечно, Erlang - это первый выбор, который приходит на ум, поскольку он был разработан для таких целей.

  • У вас будет несколько узлов, на которых будут работать локальные приложения, а также распределенные приложения.

  • Здесь самая простая иерархия - иметь горячую резервную копию для всех основных функций.

  • Это может быть достигнуто путем реализации распределенного контроллера приложений.

    • Простейшим примером является запуск сервера на узле, в то время как подчиненный сервер запускается одновременно на сопряженном узле.

    • Контроллеры распределенных приложений имеют много преимуществ.

      • Простой пример - по-разному обрабатывать сообщения node_up, вводя новые сообщения, указывающие на то, что узел не только готов к работе с VM, но и все важные приложения работают. Таким образом, сопряженный узел может быть уверен, что резервный узел готов и может начать синхронизацию.

Пожалуйста, опишите подробно или прокомментируйте, если я что-то неправильно понял. Удачи!

0 голосов
/ 16 мая 2010

Я считаю, что разумно хранить все ваши данные конфигурации в хранилище (subversion, mercurial и т. Д.) И иметь приложения, загружающие их каждый раз, когда они запускают или пытаются перезагрузить некоторые их параметры конфигурации. Это централизованный подход - однако вы можете иметь много серверов конфигурации, чтобы избежать SPOF - и это:

  • позволяет отслеживать изменения, чтобы вы знать, кто их ставил и когда он что (никто не хочет отвечать за неправильная настройка);
  • позволяет использовать ту же конфигурацию для все приложения по всему вам сеть;
  • легкость изменений: вы можете просто изменить настройка и уведомление соответствующих приложений используя gen_server:abcast вызов или другие средства.

proplists(3) полезны при чтении конфигурации.

...