2010-02-03 1 views

Antwort

4

Wenn sie nichts miteinander tun müssen: Nein. Möglicherweise müssen Sie die VM für eine der Anwendungen neu starten, was zu einer Ausfallzeit für beide führt.

+4

Ich dachte, die Erlang VM ging nicht unter? – Zubair

+2

Ein Grund für einen Neustart ist das Ändern einer VM-Option. Sie können das nicht ohne Neustart tun. Weiter: In diesem Fall könnte ein Failover stattfinden, also ist die App nicht heruntergefahren, sondern nur ein Knoten. : D – ZeissS

+2

Das Upgrade auf eine neuere Erlang VM-Version erfordert ebenfalls einen Neustart. – Zed

4

Es heißt "Schicksal teilen", eine gemeinsame Design-Entscheidung. Je mehr Subsysteme gemeinsame Ressourcen haben, desto mehr sind ihre "Schicksale" miteinander verknüpft. Im Falle einer Fehlfunktion/eines Versagens, desto mehr "Schicksal teilen" -> die erhöhte Wahrscheinlichkeit eines systematischen Versagens.

IF Sie können jedes in separaten VMs dann würde ich sagen, es ist besser so.

+0

Bedeutet dies nicht, dass ich alle meine Serverprozesse in einer separaten VM ausführen sollte? :) – Zed

+0

@zed: das ist nicht genau das, was dies bedeutet (beachten Sie das "IF" in Großbuchstaben). Es gibt ** immer ** einen SPOF (Single of Failure), der irgendwo liegt ** - es kommt darauf an, das System für eine akzeptable Verfügbarkeitsstufe für einen bestimmten Kostenpunkt zu verwalten. Aber du weißt das alles, ich weiß, du ziehst gerade mein Bein an diesem Punkt! Prost. – jldupont

5

Während viele decoupling diese Subsysteme empfehlen würde, würde ich den entgegengesetzten Ansatz nehmen. Erlang hat eine eingebaute Strategie, um viele applications auf demselben release zu laufen. Wenn Ihre Anwendungen direkt miteinander kommunizieren, kann es sinnvoll sein, sie zu einem Release zusammenzufassen. Dies wird Anrufe zwischen den Anwendungen schneller machen. Einige werden argumentieren, dass alle Ihre Anwendungen jetzt das gleiche Schicksal haben, wenn Sie das System für ein Upgrade herunterfahren müssen, das nur eine der Anwendungen benötigt. Dies ist bei Erlang ein Problem, bei dem Sie Ihre Anwendungen auf viele Knoten verteilen. Die meisten Upgrades können auch mit hot code loading durchgeführt werden.

-1

Durch die Verwendung separater VMs verlieren Sie eine Menge von Erlang-Vorteilen.

+0

Welche Vorteile sind verloren? – GxFlint