2010-02-03 12 views

Respuesta

4

Si no tienen que hacer nada entre ellos: No. Es posible que deba reiniciar la máquina virtual para una de las aplicaciones, lo que provocaría un tiempo de inactividad para ambas.

+4

Pensé que la VM Erlang no se cayó? – Zubair

+2

Un motivo para un reinicio es modificar una opción de VM. No puedes hacer eso sin reiniciar. Además: En este caso, podría producirse una conmutación por error, por lo que la aplicación no está inactiva, solo un nodo. : D – ZeissS

+2

La actualización a una versión más nueva de Erlang VM también necesita reiniciarse. – Zed

4

Se llama "destino compartido", una decisión de diseño común. Cuantos más subsistemas comparten recursos comunes, más se vincula su "destino". En caso de mal funcionamiento/falla, más "destino compartido" -> mayor probabilidad de falla sistemática.

IF puede tener cada uno en máquinas virtuales separadas, entonces yo diría que es mejor así.

+0

¿Esto no implica que deba ejecutar todos mis procesos de servidor en una VM separada? :) – Zed

+0

@zed: eso no es exactamente lo que esto significa (observe el "IF" en mayúscula). Hay ** siempre ** un SPOF (Single Of Failure) acostado ** en algún lugar ** - se trata de administrar el sistema para un nivel aceptable de disponibilidad para un determinado punto de costo. Pero sabías todo eso, ¡sé que me estás tirando de la pierna en este momento! Aclamaciones. – jldupont

5

Mientras que muchos recomendarían decoupling estos subsistemas tomaría el enfoque opuesto. Erlang tiene una estrategia integrada para ejecutar muchos applications en el mismo release. Si sus aplicaciones se comunican entre sí directamente, podría tener sentido agruparlas en un lanzamiento. Esto hará que las llamadas entre las aplicaciones sean más rápidas. Algunos argumentarán que todas sus aplicaciones ahora comparten el mismo destino si necesita desmontar el sistema para una actualización que solo una de las aplicaciones necesita. Este es un punto discutible con Erlang en el que está distribuyendo sus aplicaciones a través de muchos nodos. También la mayoría de las actualizaciones se pueden hacer con hot code loading.

-1

Al usar máquinas virtuales separadas, se pierden muchos beneficios de erlang.

+0

¿Qué beneficios se pierden? – GxFlint

Cuestiones relacionadas