2010-02-03 15 views

risposta

4

Se non devono fare nulla l'uno con l'altro: No. Potrebbe essere necessario riavviare la VM per una delle applicazioni, il che comporterebbe un tempo di inattività per entrambi.

+4

Pensavo che l'Erlang VM non fosse andato giù? – Zubair

+2

Un motivo per il riavvio è modificare un'opzione VM. Non puoi farlo senza riavviare. Inoltre: in questo caso potrebbe verificarsi un failover, quindi l'app non è inattivo, ma solo un nodo. : D – ZeissS

+2

Anche l'aggiornamento a una versione più recente di Erlang VM richiede un riavvio. – Zed

4

Si chiama "condivisione del destino", una decisione di progettazione comune. Più sottosistemi condividono risorse comuni, più il loro "destino" è legato insieme. In caso di malfunzionamento/fallimento, più "condivisione del destino" -> aumenta la probabilità di fallimento sistematico.

IF è possibile avere ciascuno in VM separate quindi direi che è meglio così.

+0

Questo non implica che dovrei eseguire tutti i miei processi server in una VM separata? :) – Zed

+0

@zed: non è esattamente ciò che questo significa (notare il "SE" in maiuscolo). C'è ** sempre ** un SPOF (Single Of Failure) che giace ** da qualche parte ** - si tratta di gestire il sistema per un livello accettabile di disponibilità per un determinato punto di costo. Ma tu sapevi tutto questo, so che mi stai solo prendendo in giro a questo punto! Saluti. – jldupont

5

Mentre molti raccomanderebbero decoupling questi sottosistemi adotterei l'approccio opposto. Erlang ha una strategia integrata per eseguire molti applications sullo stesso release. Se le tue applicazioni parlano tra di loro direttamente, potrebbe aver senso raggrupparle insieme in una versione. Ciò renderà le chiamate tra le applicazioni più veloci. Alcuni sostengono che tutte le applicazioni ora condividono lo stesso destino se doveste aver bisogno di spegnere il sistema per un aggiornamento di cui solo una delle applicazioni ha bisogno. Questo è un punto controverso con Erlang in cui stai distribuendo le tue applicazioni su molti nodi. Inoltre, la maggior parte degli aggiornamenti può essere effettuata con hot code loading.

-1

Utilizzando VM separate si perdono molti vantaggi di erlang.

+0

Quali sono i benefici persi? – GxFlint

Problemi correlati