Запуск нескольких приложений Erlang.Одна или много виртуальных машин? - PullRequest
8 голосов
/ 03 февраля 2010

Я хочу запустить несколько приложений Erlang, одно из которых - Riak, а другое - веб-сервер.Должен ли я запускать их на одной и той же виртуальной машине Erlang и почему?

Ответы [ 4 ]

6 голосов
/ 27 августа 2010

Хотя многие рекомендуют разъединение этих подсистем, я бы использовал противоположный подход. Erlang имеет встроенную стратегию для запуска многих приложений в одном выпуске . Если ваши приложения общаются друг с другом напрямую, для вас может иметь смысл объединить их в выпуск. Это сделает звонки между приложениями быстрее. Некоторые утверждают, что все ваши приложения теперь имеют одинаковую судьбу, если вам потребуется отключить систему для обновления, в котором нуждается только одно из приложений. Это спорный вопрос с Erlang, когда вы распределяете свои приложения по многим узлам. Также большинство обновлений может быть сделано с горячей загрузкой кода .

5 голосов
/ 04 февраля 2010

Это называется «разделение судьбы», общее дизайнерское решение.Чем больше подсистем разделяют общие ресурсы, тем больше их «судьба» связана друг с другом.В случае неисправности / отказа, чем больше «разделение судьбы» -> тем больше вероятность систематического отказа.

ЕСЛИ вы можете иметь каждую в отдельных ВМ, тогда я бы сказал, что так будет лучше.

5 голосов
/ 04 февраля 2010

Если им не нужно ничего делать друг с другом: Нет. Возможно, вам придется перезапустить виртуальную машину для одного из приложений, что приведет к простою для обоих.

0 голосов
/ 30 июля 2012

Используя отдельные виртуальные машины, вы теряете много преимуществ от Erlang.

...