Was ist Best Practice für HA-Gearman-Jobserver?

8

Auf der Hauptseite von Gearbman wird erwähnt, dass sie mit mehreren Jobservern laufen. Wenn also ein Jobserver stirbt, können die Clients einen neuen Jobserver übernehmen. Angesichts der Aussage und des Diagramms scheint es, dass die Jobserver nicht miteinander kommunizieren.

Unsere Frage ist, was mit den Jobs passiert, die auf dem Job-Server in der Warteschlange stehen, der gestorben ist? Was ist die beste Vorgehensweise für eine hohe Verfügbarkeit dieser Server, um sicherzustellen, dass Jobs bei einem Fehler nicht unterbrochen werden?

  

Sie können mehrere Jobserver ausführen und die Clients und Mitarbeiter mit dem ersten verfügbaren Jobserver verbinden, mit dem sie konfiguriert sind. Wenn ein Job-Server stirbt, werden auf diese Weise Clients und Workers automatisch auf einen anderen Job-Server umgeschaltet. Sie sollten wahrscheinlich nicht zu viele Job-Server ausführen, aber zwei oder drei sind eine gute Idee für Redundanz .

Quelle

    
Paul DelRe 05.10.2011, 16:38
quelle

1 Antwort

2

Soweit ich weiß, gibt es im Moment keine richtige Lösung, aber solange Sie beide Jobserver mit permanenten Warteschlangen betreiben (mit MySQL oder einem anderen Datenspeicher), verwenden Sie nicht die gleiche Warteschlange für beide Server), können Sie den Jobserver einfach neu starten und die Warteschlange von der Datenbank laden. Dadurch können alle Aufgaben in der Warteschlange an verfügbare Mitarbeiter gesendet werden, selbst wenn der Server gestorben ist.

Es gibt jedoch keine automatische Vorgehensweise, dies zu tun, wenn ein Jobserver ausfällt. Wenn sowohl der Jobserver als auch der Datenspeicher ausfallen (ein Server, der lokal ausgeführt wird), bleiben die Aufgaben in der Schwebe, bis sie wieder online sind .

Die permanente Warteschlange wird nur beim Start gelesen (und eingefügt / gelöscht, wenn Aufgaben gesendet und abgeschlossen werden).

Ich bin mir nicht sicher über die Komplexität, die benötigt wird, um solche Funktionen zum Getriebe hinzuzufügen und ob es wirklich gewünscht wird, aber einfache "Aufgabe hinzugefügt, Aufgabe verteilt, Aufgabe erledigt" - Benachrichtigungen zwischen Servern sollten nicht zu kompliziert sein.

    
MatsLindh 17.10.2011 14:23
quelle