Etherpad-lite: Gibt es eine Anleitung zum Einrichten des Lastenausgleichs?

Erstellt am 7. Dez. 2016  ·  5Kommentare  ·  Quelle: ether/etherpad-lite

tl;dr;
Wir sehen Seltsamkeiten in unserem Load-Balancing-Setup. Verschiedene Pads für dieselbe PadID, basierend darauf, welcher Load Balancer reagiert. Gibt es offizielle oder zuverlässige Dokumente zu Load Balancing Etherpad, die ich einfach nicht finden kann?

Die lange Version;
Der Grund, warum ich frage, ist, dass wir ein System haben, das einen Load Balancer für eine Reihe von Diensten verwendet und die Etherpad-Domäne auf einem einzigen Etherpad-Server zurückgreift. Der Load Balancer ist auch ein einzelner Endpunkt für https.

Das Problem, das wir sehen, ist, dass wir beim Testen von mobilen Geräten anscheinend zu einem Load Balancer und Desktops über den anderen geleitet wurden. Ich weiß nicht genau, warum dies der Fall war. Das Problem aber. Jeder Load Balancer hat ein anderes Dokument bereitgestellt, obwohl er dieselbe PadID hat. Die Überprüfung der Protokolle ergab, dass auch an diesem Tag nur ein Pad erstellt wurde.

Wir haben die sekundäre deaktiviert und stattdessen als Failover eingerichtet. Alle Geräte zeigten nun das gleiche Dokument, nämlich das von den Desktop-Rechnern. Als wir den primären deaktivierten und den sekundären erzwangen, als Failover für alle Geräte zu fungieren, wurde das andere Dokument angezeigt, das die Mobilgeräte ursprünglich sahen.

Das Seltsame daran ist, dass sie die gleiche PadID teilen.

Ich habe nach Dingen gesucht, die damit zu tun haben, und bin noch nicht auf dieses spezielle Problem gestoßen. Ich habe eine Reihe von Gesprächen über Lasttests und einige über Lastausgleich gefunden, aber die Lastausgleichsgespräche schienen nie zu einem Abschluss zu kommen.

Als Referenz bin ich an einem Projekt beteiligt, das versucht, dies in einer Produktionsumgebung für die Zusammenarbeit in Notfallsituationen bereitzustellen. Ich bin kein node.js-Entwickler, also berücksichtige dies bitte, wenn du technische Fragen dazu stellst. Es macht mir nichts aus, Fragen gestellt zu bekommen, die einem node.js-Entwickler einfach oder offensichtlich erscheinen mögen, tatsächlich wird es wahrscheinlich benötigt. Ich bin auch Teil eines Teams und habe nur sehr begrenzten Zugriff auf die Produktionsserver. Ich stehe jedoch in engem Kontakt mit den Systemadministratoren, die sich um diese Seite der Dinge kümmern.

Question wontfix

Hilfreichster Kommentar

SESSIONKEY.txt schien keine wesentliche Rolle zu spielen.

Wir haben festgestellt, dass der Parameter "head" für jeden Server unterschiedliche Werte hat und beim Erstellen des Schlüssels für den key:value- Speicher verwendet wird.

z.B
`eth1

Pad:58483aee8a6dd9.65340416 | {"atext":{"text":"Test\n\nUntest?\n\n\n","attribs":" 4+4 5|4+b|1+1"},"pool":{ "numToAttrib":{"0":["author","a.kFcgC1Xr1xVyK6VP"],"1":["author","a.KokfEaKFHuLOrj8Q"],"2":["author","a.XqjPbBqDZM7WEIv6 "],"3":["author","a.UTXpIyYgqxjhQBJN"],"4":["author","a.6adq2JkT7Yv40gBK"],"5":["author","a.vPuSKAf3Gx2voZlH"] },"nextNum":6},"head":95,"chatHead":-1,"publicStatus":false,"passwordHash":null,"savedRevisions":[]}

eth2

Pad:58483aee8a6dd9.65340416 | {"atext":{"text":"Test\n\nTest\n\nWTH\n\n...\n\n\n","attribs":" 4+4 5|8+i|1 +1"},"pool":{"numToAttrib":{"0":["author","a.kFcgC1Xr1xVyK6VP"],"1":["author","a.KokfEaKFHuLOrj8Q"],"2" :["author","a.XqjPbBqDZM7WEIv6"],"3":["author","a.UTXpIyYgqxjhQBJN"],"4":["author","a.6adq2JkT7Yv40gBK"],"5":[ "author","a.VImJzfCalZs11fia"]},"nextNum":6},"head":105,"chatHead":0,"publicStatus":false,"passwordHash":null,"savedRevisions":[]}
`

Wir sind kurz davor, den Lastenausgleich aufzugeben und einen Failover-Ansatz zu wählen. Hochverfügbarkeit ist für uns das oberste Ziel.

Es wäre jedoch gut, eine offizielle Stellungnahme der Projektleiter dazu zu haben. Es wird anderen viel Zeit sparen, um die Antwort zu finden.

Alle 5 Kommentare

Hallo, @Unifex , es sieht so aus, als hätte jede Instanz von Etherpad eine eigene Datenbank. Verwenden Sie eine Remote-DB, um die Pads zu speichern? Haben Sie Zugriff auf settings.json im Etherpad-Stammordner? Könnten Sie uns die DB-Konfiguration dieser Datei mitteilen?

Mir ist kein Dokument zum Lastenausgleich für Etherpad bekannt und ich weiß nicht, ob es bereit ist, seine Änderungen aus Gründen der Redundanz über verschiedene DBs zu replizieren.

Hallo @lpagliari ,

Danke für die Antwort. Nur ein Kopf hoch. Meine weniger schnelle Reaktion ist darauf zurückzuführen, dass ich in der Zukunft lebe und der größte Teil der Welt schläft, während wir hier in Neuseeland sind.

Ich glaube, wir haben nur eine DB. Wir haben definitiv nur einen DB-Server dafür. Ich habe eine Anfrage bei den Systemadministratoren gestellt, um zu überprüfen, ob dies der Fall ist. Ich hoffe, dass einer auf den DB-Server zeigt und der andere falsch konfiguriert ist (Standard-dirtyDB vielleicht noch vorhanden ...)

Sollte innerhalb einer halben Stunde eine Antwort haben.

Danke nochmal für die Antwort.

Grüße,
Gold

Okay, habe gerade gehört und beide Server mit Lastenausgleich zeigen tatsächlich auf die gleiche Datenbank auf den gleichen Datenbankservern. Wir haben uns auf dem Postgres-Server verifiziert und können beide Server mit einer Verbindung zur DB sehen. Ich habe darum gebeten, dass der Systemadministrator auch die Datei settings.json ansieht und sie sind die gleichen. Er ging noch einen Schritt weiter und überprüfte den Hash in der Datei und sie sind identisch.

Was uns jedoch aufgefallen ist, ist APIKEY.txt auf beiden gleich, SESSIONKEY.txt jedoch unterschiedlich.

Schau dir das jetzt an.

SESSIONKEY.txt schien keine wesentliche Rolle zu spielen.

Wir haben festgestellt, dass der Parameter "head" für jeden Server unterschiedliche Werte hat und beim Erstellen des Schlüssels für den key:value- Speicher verwendet wird.

z.B
`eth1

Pad:58483aee8a6dd9.65340416 | {"atext":{"text":"Test\n\nUntest?\n\n\n","attribs":" 4+4 5|4+b|1+1"},"pool":{ "numToAttrib":{"0":["author","a.kFcgC1Xr1xVyK6VP"],"1":["author","a.KokfEaKFHuLOrj8Q"],"2":["author","a.XqjPbBqDZM7WEIv6 "],"3":["author","a.UTXpIyYgqxjhQBJN"],"4":["author","a.6adq2JkT7Yv40gBK"],"5":["author","a.vPuSKAf3Gx2voZlH"] },"nextNum":6},"head":95,"chatHead":-1,"publicStatus":false,"passwordHash":null,"savedRevisions":[]}

eth2

Pad:58483aee8a6dd9.65340416 | {"atext":{"text":"Test\n\nTest\n\nWTH\n\n...\n\n\n","attribs":" 4+4 5|8+i|1 +1"},"pool":{"numToAttrib":{"0":["author","a.kFcgC1Xr1xVyK6VP"],"1":["author","a.KokfEaKFHuLOrj8Q"],"2" :["author","a.XqjPbBqDZM7WEIv6"],"3":["author","a.UTXpIyYgqxjhQBJN"],"4":["author","a.6adq2JkT7Yv40gBK"],"5":[ "author","a.VImJzfCalZs11fia"]},"nextNum":6},"head":105,"chatHead":0,"publicStatus":false,"passwordHash":null,"savedRevisions":[]}
`

Wir sind kurz davor, den Lastenausgleich aufzugeben und einen Failover-Ansatz zu wählen. Hochverfügbarkeit ist für uns das oberste Ziel.

Es wäre jedoch gut, eine offizielle Stellungnahme der Projektleiter dazu zu haben. Es wird anderen viel Zeit sparen, um die Antwort zu finden.

Dieses Problem wurde automatisch als veraltet markiert, da es in letzter Zeit keine Aktivität hatte. Es wird geschlossen, wenn keine weitere Aktivität stattfindet. Vielen Dank für Ihre Beiträge.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen