2010-02-03 2 views

ответ

4

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

+4

Я думал, что Erlang VM не спустилась? – Zubair

+2

Причиной перезагрузки является изменение опции виртуальной машины. Вы не можете этого сделать без перезапуска. Далее: В этом случае может произойти переход на другой ресурс, поэтому приложение не будет работать, только один узел. : D – ZeissS

+2

Обновление до новой версии версии Erlang VM также требует перезагрузки. – Zed

4

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

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

+0

Не означает ли это, что я должен запускать все свои серверные процессы в отдельной виртуальной машине? :) – Zed

+0

@zed: это не совсем то, что это означает (обратите внимание на «IF» в заглавной букве). Существует ** всегда ** SPOF (Single Of Failure), лежащий ** где-то ** - это сводится к управлению системой для приемлемого уровня доступности для данной точки затрат. Но вы все это знали, я знаю, что вы просто тянете мою ногу в этот момент! Приветствия. – jldupont

5

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

-1

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

+0

Какие преимущества утеряны? – GxFlint

Смежные вопросы