Ich habe eine Frage bezüglich Failover mit dem JBoss Application Server (5.1) läuft JBoss ESB 4.9. Ich werde mit einem Diagramm beginnen:Failover von JBoss Application Server
Wir haben eine Legacy-Anwendung ("Legacy Producer") Daten auf einem Legacy-Verkehr ("Legacy Transport") zu erzeugen. Wir haben einen ESB-Dienst ("Gateway") geschrieben, der den Legacy-Transport überwacht und die empfangenen Nachrichten auf den ESB überträgt. Die Nachrichten folgen dann mehreren Orchestrierungsschritten, um verarbeitet zu werden.
Dies funktioniert korrekt mit einem Anwendungsserver läuft. Wir möchten jedoch den Ausfall eines Anwendungsservers zulassen. Eine naive Lösung besteht also darin, zwei solcher Anwendungsserver (wie gezeigt) in einer Clusterkonfiguration aufzustellen. Da dies jedoch zu einer Replikation der Gateway-Dienste führen würde, würden zwei Kopien jeder Nachricht auf dem ESB veröffentlicht und verarbeitet werden, was ein unerwünschtes Ergebnis wäre.
Was ist der richtige Weg, diese Art von Failover zu implementieren?
konkreter, wenn der „Legacy Transport“ Dateisystem-basiert ist, wie stellen Sie sicher, dass keine in der Nähe Racebedingung zwischen den beiden Fällen entsteht die FileGatewayListeners, zB: eine Datei erscheint im überwachten Ordner, beide Listener triggern gleichzeitig, ein Listener benennt die Datei um, indem er das Suffix .inProgress anhängt, und der etwas langsamere kann die Datei nicht umbenennen, da sie bereits umbenannt wurde? Gibt es eine Clusterkonfiguration, die dieses Problem verhindert? –