2016-04-06 15 views
2

Ich habe einen 3-Knoten-Cluster von Rabbitmq hinter einem HAproxy Load Balancer. Wenn ich einen Knoten herunterfahre, schaltet Rabbitmq die Warteschlange erfolgreich auf die anderen Knoten um. Ich stelle jedoch fest, dass Logstash keine Nachrichten mehr aus der Warteschlange zieht, wenn ich sie nicht neu starte. Ist das ein Problem mit der Funktionsweise von rabbitmq? d.h. es deaktiviert alle aktiven Konsumenten. Ich bin mir nicht sicher, ob der Log-Stash eine Wiederholungsfunktion hat. Ist jemand auf dieses Problem gestoßen?Logstash mit Kaninchenmq-Cluster

+0

Ich habe das gleiche Problem, haben Sie irgendeine Lösung gefunden? –

Antwort

2

Zitiert Kaninchen mq Dokumentation, Seite für clustering erste

Was Replicated ist? Alle Daten/Zustände, die für den Betrieb eines RabbitMQ-Brokers erforderlich sind, werden über alle Knoten repliziert. Eine Ausnahme bilden Nachrichtenwarteschlangen, die standardmäßig auf einem Knoten liegen, obwohl sie von allen Knoten sichtbar und erreichbar sind.

und high availability

Clients, die von einem gespiegelten Warteschlange verbrauchen kann wissen wollen, dass die Warteschlange, aus dem sie wurden ausgefallen über raubend. Wenn eine gespiegelte Warteschlange fehlschlägt, werden die Informationen darüber, welche Nachrichten gesendet wurden, an den Verbraucher gesendet, und daher alle nicht bestätigten Nachrichten mit dem Redelivered-Flag erneut bereitgestellt. Verbraucher könnten wünschen, wissen, dass dies passieren wird.

Wenn ja, können sie mit dem Argument x-cancel-on-ha-failover auf true verbrauchen. Ihre verbrauchen wird dann abgebrochen werden auf Failover und eine Verbraucher Kündigung Benachrichtigung gesendet. Es ist dann die Verantwortung des Verbrauchers, basis.consume neu auszugeben, um zu beginnen, wieder zu verbrauchen.

Also, was bedeutet das alles:

  • Sie haben Warteschlangen spiegeln
  • Die Verbraucher Handbuch ACK
  • Die Verbraucher verbinden sollten auf ihre eigenen

verwenden sollten Also die Antwort auf deine Frage ist nein, es ist kein Problem mit Rabbitmq, so funktioniert es einfach. Es liegt an den Kunden, die Verbindung wiederherzustellen.

+0

Eine sehr gut präsentierte Antwort. Vielen Dank. – sharman

+0

Gern geschehen. Hat es dir geholfen oder dein Problem vielleicht gelöst? Wenn Sie nicht sagen könnten, was fehlt oder unklar ist? – cantSleepNow

+0

Ihre Antwort erklärte die Funktionsweise von Kaninchen. Das Problem mit dem Protokollspeicher bleibt jedoch bestehen. – sharman