Ich plante die Bereitstellung von Meteor auf meinen Amazon AWS EC2 Servern, aber ich möchte auch mehrere Instanzen des Servers gleichzeitig ausführen, um mehr Clients zu bedienen. Gibt es einen geeigneten Weg, dies in Meteor zu tun, ohne die Fähigkeit der Kunden zu brechen, über Aktualisierungen ihrer Sammlungen informiert zu werden?Laufender Meteor in einem Cluster und Echtzeitänderungen
Antwort
Beim Ausführen mehrerer Meteor-Serverprozesse sind zwei Hauptprobleme zu beachten.
Sitzungsaffinität des Clients. Clients verwenden die SockJS-Bibliothek, um sich mit dem Meteor-Server zu verbinden, normalerweise mithilfe einer langen Abfragestrategie, die sich immer wieder mit dem Server verbindet. Der Serverprozess enthält den Status, der jedem Client zugeordnet ist. Daher ist es wichtig, dass die Verbindung eines bestimmten Clients nicht zwischen Servern hin- und herwechselt, oder dass der Server denkt, dass er mit einem neuen Client kommuniziert und den gesamten Subskriptionsstatus erneut sendet.
Ungültigkeitsfälle der Datenbank koordinieren. Jedes Mal, wenn ein Client einen Datenbank-Schreibvorgang ausführt, führt der Serverprozess eine Neuberechnung durch und sendet Aktualisierungen an jeden anderen betroffenen Client. Clients, die mit einem anderen Server verbunden sind, sehen die Änderung jedoch erst, wenn dieser Serverprozess die 10-Sekunden-Mongo-Abrufschleife ausführt. Für einige Anwendungen ist es in Ordnung, wenn die meisten Clients 10 Sekunden zurückliegen. Wenn Ihre Anwendung etwas mehr Echtzeit benötigt, müssen Sie eine eigene Interprozesskommunikation zwischen Meteor-Serverprozessen implementieren.
Jungs das ist, was Sie bei
Meteor Cluster aussehen sollte - https://github.com/arunoda/meteor-cluster
ich darüber auch hier gebloggt: http://goo.gl/2aHJ2
- 1. Laufender mongrel_rails cluster :: starte unter Windows
- 2. Laufender Befehl in einem Docker
- 3. Laufender Scalastyle in einem SBT Multiprojekt Build
- 4. @ApplicationScoped in einem Cluster
- 5. Echtzeitänderungen an Google Dokument/Tabelle/Präsentation
- 6. Können wir Namensknoten in einem Cluster und Datenknoten in einem anderen Cluster haben?
- 7. Laufender String in Android
- 8. Mehrere JChannels in einem Cluster
- 9. Laufender Knoten aus einem Bash-Skript
- 10. Laufender Knoten-serialport in nw.js
- 11. Laufender Code in einem anderen Thread in Javascript
- 12. Laufender Django-Sellerie in Produktion
- 13. Laufender Charakter Countdown in Java?
- 14. laufender Job in hadoop - ERROR
- 15. Erneute Ausführung fehlgeschlagener und nicht laufender Tests
- 16. Laufender zeitgesteuerter Job
- 17. Serverknoten in einem Cluster über Service starten und loadcache ausprobieren
- 18. Laufender Code in der Hauptschleife
- 19. Cluster in hierarchischem Cluster auswählen
- 20. Unterschied zwischen Cluster und Non-Cluster-Index in SQL
- 21. Mappers-Verteilung in einem EMR-Cluster
- 22. Freigeben von Status in einem Glassfish-Cluster
- 23. Mehrere Primärknoten in einem rethinkdb-Cluster
- 24. Identifizieren langsam laufender Tests
- 25. Nodejs - laufender externer Prozess
- 26. Laufender Funke-Cluster im Standalone-Modus im Vergleich zu Garn/Mesos
- 27. dynamische Optimierung laufender Programme
- 28. Redis Cluster und Zsets
- 29. Parallele R in einem Windows-Cluster
- 30. Laufender Quickstart auf Mac
siehe meine Antwort unten für die ** Koordinierende Datenbank Ungültigmachungen * * mit [meteor-cluster] (https://github.com/arunoda/meteor-cluster) –
Können Sie bestätigen, dass (2) nach der Version 0.7.0, die Oblog-Tailing verwendet, kein Problem mehr ist? – Doug