Совместное использование файла свойств из одного места - PullRequest
1 голос
/ 17 мая 2010

У нас есть приложения Java Enterprise, развернутые на нескольких серверах. Существуют реплицированные серверы, на которых выполняется одинаковое приложение для балансировки нагрузки (назовем их серверами J2EE). Обратите внимание, что это не кластеризация.

Существует общий сервер (назовем его props-сервером), на котором размещены все файлы свойств, относящиеся ко всем приложениям. Папка, содержащая файлы свойств, является общей NFS для всех других серверов J2EE. Проблема в том, что вы можете видеть, что сервер реквизита является единственной точкой отказа. Если это не происходит или если общий ресурс NFS поврежден, другие серверы не смогут загружать свойства.

Какие есть варианты, чтобы избежать этой жесткой зависимости? Учитывая ограничение, мы не хотим дублировать файлы свойств на всех серверах.

Ответы [ 4 ]

3 голосов
/ 17 мая 2010

Если у вас возникла эта проблема, более масштабируемым решением было бы изучить использование этого:

http://java.sun.com/j2se/1.4.2/docs/guide/lang/preferences.html

Это абстрагирует вещи вроде того, где они находятся. Затем эти параметры можно сохранить на сервере LDAP, в клонированных свойствах или в любом другом удобном месте - вы даже можете использовать разные механизмы для разных сред.

2 голосов
/ 17 мая 2010

Один из подходов заключается в том, чтобы каждый сервер J2EE имел клонированный набор файлов конфигурации. Это подразумевает ограничение, заключающееся в том, что каждый раз, когда конфигурация изменяется для одного сервера, она должна быть rsync-ed среди всех остальных (после того, как известно, что изменение в порядке).

Положительный аспект очевиден, у вас действительно есть N независимо настраиваемых серверов, а изменение конфигурации убивает (если убивает) только один сервер.

Негативным аспектом является то, что иногда кто-то забудет выполнить «rsync» и «bounce» после изменения конфигурации в одном окне.

1 голос
/ 02 мая 2011

Учитывая ограничение, которое мы не делаем хотите скопировать файлы свойств в все серверы.

Если вы можете скопировать свойства на некоторые серверы, выбрать лидера и убедиться, что любые изменения распространяются на резервные копии, тогда Paxos - ваш друг. Если лидер терпит неудачу, новый лидер может быть избран. Я обновил страницу википедии. Он содержал ошибки в описании алгоритма.

1 голос
/ 17 мая 2010

Посмотрите на алгоритм PAXOS.Он предназначен для согласования нескольких серверов.

http://en.wikipedia.org/wiki/Paxos_algorithm

...