2016-05-03 26 views
1

Angenommen, ich habe 2 MQ-Server (A, B). Ein Configure-Failover zu B und diesen MQ-Servern wird eine Scheduler-Verzögerung von 5 Minuten zur Verarbeitung jeder Warteschlange konfiguriert. Wenn A 50 Warteschlange hat und plötzlich aus irgendeinem Grund fehlschlägt. Kann MQ Server B den 50-Warteschlangenspeicher in A weiter verarbeiten? Oder MQ B kann nur die eingehende Warteschlange verarbeiten, aber nicht in A?ActiveMq Failover mit Scheduler-Verzögerung

+0

Was haben Sie schon versucht? –

+0

Nun, ich habe keine Ahnung, was genau in meiner Inszenierung passieren wird. Ich habe gerade versucht, in meinen lokalen Maschinen zu simulieren. 2 Cluster Ein Failover B, 50 in der Warteschlange und Herunterfahren A. B kann nicht in der Warteschlange in A fortfahren. Kann dies durch irgendeine Konfigurationsmethode geschehen? Ursache mein Usecase kann diese Nachricht in der Warteschlange ohne Prozess nicht zulassen. –

+0

Es gibt eine Konfiguration, in der beide Instanzen von ActiveMQ die gleiche Datenbank oder den gleichen Nachrichtenspeicher verwenden, der als 'Master-Slave-Konfiguration mit gemeinsam genutztem DB' bezeichnet wird. das hilft dir, http://activemq.apache.org/shared-file-system-master-slave.html (dies ist für ein freigegebenes Dateisystem) oder http://activemq.apache.org /jdbc-master-slave.html (dies ist für die gemeinsame DB) – Vihar

Antwort

0

Ich nehme an, Sie haben Fail-Over-Setup mit einem freigegebenen Dateisystemverzeichnis für KahaDB. Wenn Sie Nachrichten verzögert und/oder geplant haben, werden sie nicht in der Standard-KahaDB-Datenbank, sondern in Ihrem lokalen "Daten" -Verzeichnis abgelegt (d. H. Standardmäßig eins für A und eins für B).

Sie müssen Ihren Scheduler so konfigurieren, dass er auch ein freigegebenes Verzeichnis (auf einer Netzwerkfestplatte oder auf einem anderen Datenträger) verwendet. Konfigurationsbeispiel:

<broker ... schedulerSupport="true" schedulerDirectory="/path/to/shared/directory">