Ist es möglich, den Inhalt von RabbitMQ-Nachrichten direkt über die Befehlszeile anzuzeigen?
sudo rabbitmqctl list_queues
listet die Warteschlangen auf.
Gibt es einen Befehl wie sudo rabbitmqctl list_queue_messages <queue_name>
?
rabbitmq
rabbitmqctl
rabbitmqadmin
Schere
quelle
quelle
Antworten:
Sie sollten das Management-Plugin aktivieren.
Siehe hier:
http://www.rabbitmq.com/plugins.html
Und hier für die Besonderheiten des Managements.
http://www.rabbitmq.com/management.html
Nach dem Einrichten müssen Sie die folgenden Anweisungen befolgen, um das rabbitmqadmin-Tool zu installieren und zu verwenden. Welches verwendet werden kann, um vollständig mit dem System zu interagieren. http://www.rabbitmq.com/management-cli.html
Beispielsweise:
gibt Ihnen die erste Nachricht aus der Warteschlange.
quelle
requeue=false
rabbitmqadmin get queue=<QueueName>
Hier sind die Befehle, mit denen ich den Inhalt der Warteschlange abrufe:
RabbitMQ Version 3.1.5 unter Fedora Linux unter https://www.rabbitmq.com/management-cli.html
Hier sind meine Austausche:
Hier ist meine Warteschlange:
Cram einige Gegenstände in myqueue:
RabbitMQ sieht Nachrichten in der Warteschlange:
quelle
sudo python rabbitmqadmin get queue=myqueue requeue=true count=10
, Nachrichten anzuzeigen oder die Nachrichten vom Ende zu entfernen und sie dann nach vorne zu fordern. Gibt es eine Möglichkeit, die Nachrichten nur zu sehen, anstatt sie zu entfernen?rabbitmqadmin
Verbindung zum Web-basierten API, ist sudo hier benötigt?requeue=True
Ich habe die rabbitmq-dump-Warteschlange geschrieben , mit der Nachrichten aus einer RabbitMQ-Warteschlange in lokale Dateien geschrieben und die Nachrichten in ihrer ursprünglichen Reihenfolge angefordert werden können.
Anwendungsbeispiel (um die ersten 50 Nachrichten der Warteschlange zu sichern
incoming_1
):quelle
Sie können die RabbitMQ-API verwenden, um die Anzahl oder die Nachrichten abzurufen:
Nachrichten aus einer Warteschlange abrufen. (Dies ist kein HTTP-GET, da dies den Status der Warteschlange ändert.) Sie sollten einen Text veröffentlichen, der wie folgt aussieht:
count steuert die maximale Anzahl der abzurufenden Nachrichten. Möglicherweise erhalten Sie weniger Nachrichten, wenn die Warteschlange sie nicht sofort bereitstellen kann.
Requeue bestimmt, ob die Nachrichten aus der Warteschlange entfernt werden. Wenn die Anforderung wahr ist, werden sie erneut angefordert - aber ihr erneut zugestelltes Flag wird gesetzt. Die Codierung muss entweder "auto" (in diesem Fall wird die Nutzlast als Zeichenfolge zurückgegeben, wenn sie in UTF-8 gültig ist, und base64 anderweitig codiert) oder "base64" (in diesem Fall wird die Nutzlast immer base64-codiert) sein. Wenn "Abschneiden" vorhanden ist, wird die Nachrichtennutzlast abgeschnitten, wenn sie größer als die angegebene Größe (in Byte) ist. Abschneiden ist optional; Alle anderen Schlüssel sind obligatorisch.
Bitte beachten Sie, dass die Publish / Get-Pfade in der HTTP-API zum Einfügen von Testnachrichten, Diagnosen usw. vorgesehen sind. Sie implementieren keine zuverlässige Zustellung und sollten daher eher als Systemadministrator-Tool als als allgemeine API für Messaging behandelt werden.
http://hg.rabbitmq.com/rabbitmq-management/raw-file/rabbitmq_v3_1_3/priv/www/api/index.html
quelle
ein bisschen spät dazu, aber ja, rabbitmq hat einen eingebauten Tracer, mit dem Sie die eingehenden Nachrichten in einem Protokoll sehen können. Wenn aktiviert, können Sie
tail -f /var/tmp/rabbitmq-tracing/.log
die Nachrichten nur (auf dem Mac) ansehen.Die detaillierte Beschreibung finden Sie hier http://www.mikeobrien.net/blog/tracing-rabbitmq-messages
quelle
Wenn Sie mehrere Nachrichten aus einer Warteschlange möchten, z. B. 10 Nachrichten, lautet der zu verwendende Befehl:
Wenn Sie nicht möchten, dass die Nachrichten angefordert werden, wechseln Sie einfach
ackmode
zuack_requeue_false
.quelle