2016-03-18 5 views
0

Ich habe 2 aktive Server hinter einem Load Balancer. Nehmen wir an, Load Balancer ist A und die Knoten sind A1 und A2.Quartz - Spring Batch Multi Cluster Problem

Jetzt haben A1 und A2 Quartz Scheduler und A1 und A2 hat Spring Batch Job Instanzen.

Um 1:00 PM sagen wir, dass ein Job gekickt werden soll und entweder auf A1 oder A2 laufen soll.

Aber manchmal, was passiert, ist A1 und A2 beide kickt die Jobs und irgendwie laufen sie zweimal. Es läuft entweder auf verschiedenen Knoten oder auf demselben Knoten.

Problem ist auf beiden Ebenen Quarz tritt irgendwie zwei Instanzen des gleichen Jobs und irgendwie Frühjahr Batch auch die beiden Instanzen.

Alle Vorschläge zur Behebung des Problems oder der besten Praktiken aus der Industrie sind zu begrüßen.

Antwort

0

Sie sollten einfach die Uhr der Server A1 und A2 überprüfen.

Wie deutlich in Quarz guide wies darauf hin,

nie Clustering auf verschiedenen Rechnern laufen, es sei denn, ihre Uhren synchronisiert sind eine Form von Zeit-Sync-Dienst (Daemon), die sehr regelmäßig läuft (die Uhren müssen innerhalb einer Sekunde voneinander). Siehe http://www.boulder.nist.gov/timefreq/service/its.htm, wenn Sie nicht vertraut sind, wie Sie dies tun.

Wie auch immer, es ist ein riskantes Geschäft, mehrere Instanzen auf verschiedenen Rechnern auszuführen. Wahrscheinlich ist es besser, A2 als Failover-Cluster von A1 zu verwenden, anstatt es parallel zu betreiben.

Verwandte Themen