2010-08-27 17 views
5

Ich habe eine CouchDB-Instanz auf einem Rechner und damit mit einem eigenen Erlang-VM-Prozess. Wenn ich eine andere separate Erlang-Anwendung auf diesem Computer ausführen lasse, ist es besser, die gleiche VM zwischen CouchDB und meiner Anwendung zu teilen, oder wird empfohlen, einen neuen Erlang-Knoten zu starten?Sollten getrennte Erlang-Anwendungen dieselbe VM auf demselben Computer verwenden?

+1

http://stackoverflow.com/questions/2194997/running-multiple-erlang-applications-one -oder-viele-vms – Jonas

+0

Ich finde die meisten Antworten in obigem Link falsch. Erlang VM kann selbstständig Anwendungen hosten und sie auf fehlertolerante Weise verwalten, tatsächlich kann es sogar die Zuverlässigkeit erhöhen, wenn Sie OTP-Entwurfsmustern folgen. – user425720

Antwort

3

Es gibt kein Problem mit dem Ausführen mehrerer VMs auf dem gleichen Rechner (zumindest die letzten OTP-Versionen), aber es ist sehr praktisch, wenn Sie alle Ihre Anwendungen auf einem Erlang-Knoten haben. Einfachere Kommunikation, Abhängigkeitsverwaltung, Überwachung, Fehlertoleranz - Sie erhalten es in diesem Fall kostenlos und erwähnen nicht, nur einen "Knoten" im Quellcodeverwaltungssystem zu verwalten.

Das Problem beginnt mit CouchDB. Es hat kein anständiges Build-System, mit dem Sie es als eine der unabhängigen Erlang-Knoten-Anwendungen verwenden können. In diesem Fall benötigen Sie mindestens 2 VMs (einer fungiert als Couch-Daemon, der andere fungiert als Host-Rechner)

4

Während viele würden decoupling diese Subsysteme empfehlen, würde ich den umgekehrten Weg gehen. Erlang hat eine eingebaute Strategie, um viele applications auf demselben release laufen zu lassen. 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.

+0

Ich stimme mit user425720 überein. Der Link im Kommentar von Jonas ist völlig falsch und fehlgeleitet. Ich habe meine Antwort auch dort gepostet. –

Verwandte Themen