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?
Antwort
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)
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.
Ich stimme mit user425720 überein. Der Link im Kommentar von Jonas ist völlig falsch und fehlgeleitet. Ich habe meine Antwort auch dort gepostet. –
- 1. Wie verwenden Sie Git mit mehreren Benutzern auf demselben Computer?
- 2. Übergang auf dieselbe Route mit demselben Modell
- 3. zend server und xampp auf demselben computer
- 4. Sollten Website-Backend und Mobile-Service-Layer dieselbe API verwenden?
- 5. Sollten wir KeyStore und TrustStore auf dieselbe .jks-Datei verweisen?
- 6. Seite an Seite Wahnsinn - läuft Binärdateien auf demselben Computer
- 7. WCF Funktioniert zwischen verschiedenen Computern, aber nicht auf demselben Computer
- 8. Ping-Anfrage Timeout obwohl Web-Browser auf demselben Computer funktioniert
- 9. Oracle: Verwenden Sie zwei verschiedene Versionen von EXP auf demselben Computer?
- 10. Wie mehrere durch Komma getrennte Werte zu demselben Schlüssel
- 11. file_get_contents oder curl verwenden auf demselben Server
- 12. Sollten wir FxCop auf UnitTest-Baugruppen verwenden?
- 13. Eclipse-Remote-Debugging auf einem Glassfish-Server, der auf einer VM auf demselben Host ausgeführt wird
- 14. Wenn eine partielle Klasse von einer Klasse erbt, dann sollten alle anderen partiellen Klassen mit demselben Namen dieselbe Basisklasse erben.
- 15. mehrere Postgres-Instanzen auf demselben Rechner
- 16. DTO vs VM - Verwenden oder nicht verwenden?
- 17. Azure Derselbe VM-Name in verschiedenen Ressourcengruppen und demselben vnet
- 18. Ausführen von Spark in IntelliJ Idea auf Standalone-Cluster mit Master auf demselben Windows-Computer
- 19. Wie kann ich mehrere Modelle verwenden, um auf dieselbe Sammlung zu verweisen?
- 20. Wie finden Sie, ob Windows auf einem virtuellen Computer oder auf einem physischen Computer ausgeführt wird?
- 21. Welche Quellensteuerung sollten wir verwenden?
- 22. Warum * sollten * Wir verwenden EventHandler
- 23. Können sich meine 32-Bit- und 64-Bit-COM-Komponenten auf demselben Computer befinden?
- 24. So greifen Sie auf den Knotenserver von einem Remote-Computer mit demselben LAN zu
- 25. Verwenden von WinSocks in C, um Daten an aC# -Anwendung auf demselben Computer zu senden, "Zielhostverweigerung connectiong (C# part)
- 26. sollten wir Path.DirectorySeperatorChar verwenden C#
- 27. Warum sollten wir lua_pushinteger() verwenden?
- 28. NodaTime, sollten wir LocalDateTime für Buchungszeiten verwenden?
- 29. WPF Verwenden mehrerer Filter für dieselbe ListCollectionView
- 30. Finden von korrekten Paketversionen mit Standalone Python 2.7 und Anaconda/Python 3.5 auf demselben Computer (Mac)
http://stackoverflow.com/questions/2194997/running-multiple-erlang-applications-one -oder-viele-vms – Jonas
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