RabbitMQ "Was sind" Ready "- und" Unacked "-Nachrichtentypen?

75

Ich werde zwischen diesen beiden Arten von Nachrichten in RabbitMQ verwechselt.

Ich habe gesehen, dass einige meiner Warteschlangen 0 "Unacked" - und 1000 "Ready" -Nachrichten enthalten, während andere 1000 "Unacked" - und 0 "Ready" -Nachrichten enthalten.

Was ist der Unterschied zwischen ihnen?

Und wie kann ich wissen, wie viele der Nachrichten von den Verbrauchern gelesen werden?

Anil kumar
quelle

Antworten:

124

Eine Nachricht ist bereit, wenn sie auf ihre Verarbeitung wartet.

Wenn ein Verbraucher eine Verbindung zur Warteschlange herstellt, erhält er eine Reihe von Nachrichten, die verarbeitet werden müssen. Der Betrag wird in der Prefetch-Größe angegeben. Während dieser Verbraucher an den Nachrichten arbeitet, wird der Status nicht bestätigt.

Unacked bedeutet, dass der Verbraucher versprochen hat, sie zu verarbeiten, aber nicht bestätigt hat, dass sie verarbeitet werden. Wenn der Verbraucher abstürzt, weiß die Warteschlange, welche Nachrichten erneut zugestellt werden sollen, wenn der Verbraucher online geht. Wenn Sie mehrere Verbraucher haben, werden die Nachrichten unter ihnen verteilt.

l.renkema
quelle
3

Geben Sie hier die Bildbeschreibung ein

Nichtbestätigung : Wird aus Gründen der Datensicherheit verwendet. es wird garantiert den Peer erreichen und erfolgreich verarbeitet. Falls der Verbraucher zwischen der Verarbeitung der Nachricht verloren geht und den Rabbit MQ nicht bestätigt. Die Nachricht geht nicht verloren und steht dem Kunden zur erneuten Verarbeitung zur Verfügung.

Rakesh Soni
quelle