Czy można wyświetlić zawartość wiadomości RabbitMQ bezpośrednio z wiersza poleceń?
sudo rabbitmqctl list_queues
wymienia kolejki.
Czy jest jakieś polecenie sudo rabbitmqctl list_queue_messages <queue_name>
?
Czy można wyświetlić zawartość wiadomości RabbitMQ bezpośrednio z wiersza poleceń?
sudo rabbitmqctl list_queues
wymienia kolejki.
Czy jest jakieś polecenie sudo rabbitmqctl list_queue_messages <queue_name>
?
Odpowiedzi:
Powinieneś włączyć wtyczkę zarządzającą.
rabbitmq-plugins enable rabbitmq_management
Spójrz tutaj:
http://www.rabbitmq.com/plugins.html
A tu dla specyfiki zarządzania.
http://www.rabbitmq.com/management.html
Na koniec po skonfigurowaniu będziesz musiał postępować zgodnie z poniższymi instrukcjami, aby zainstalować i używać narzędzia rabbitmqadmin. Które można wykorzystać do pełnej interakcji z systemem. http://www.rabbitmq.com/management-cli.html
Na przykład:
rabbitmqadmin get queue=<QueueName> requeue=false
przekaże Ci pierwszą wiadomość spoza kolejki.
requeue=false
bit i po prostu zrobićrabbitmqadmin get queue=<QueueName>
Oto polecenia, których używam, aby pobrać zawartość kolejki:
RabbitMQ w wersji 3.1.5 na Linuksie Fedory przy użyciu https://www.rabbitmq.com/management-cli.html
Oto moje wymiany:
eric@dev ~ $ sudo python rabbitmqadmin list exchanges
+-------+--------------------+---------+-------------+---------+----------+
| vhost | name | type | auto_delete | durable | internal |
+-------+--------------------+---------+-------------+---------+----------+
| / | | direct | False | True | False |
| / | kowalski | topic | False | True | False |
+-------+--------------------+---------+-------------+---------+----------+
Oto moja kolejka:
eric@dev ~ $ sudo python rabbitmqadmin list queues
+-------+----------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------------+--------+---------+
| vhost | name | auto_delete | consumers | durable | exclusive_consumer_tag | idle_since | memory | messages | messages_ready | messages_unacknowledged | node | policy | status |
+-------+----------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------------+--------+---------+
| / | myqueue | False | 0 | True | | 2014-09-10 13:32:18 | 13760 | 0 | 0 | 0 |rabbit@ip-11-1-52-125| | running |
+-------+----------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------------+--------+---------+
Wrzuć kilka elementów do myqueue:
curl -i -u guest:guest http://localhost:15672/api/exchanges/%2f/kowalski/publish -d '{"properties":{},"routing_key":"abcxyz","payload":"foobar","payload_encoding":"string"}'
HTTP/1.1 200 OK
Server: MochiWeb/1.1 WebMachine/1.10.0 (never breaks eye contact)
Date: Wed, 10 Sep 2014 17:46:59 GMT
content-type: application/json
Content-Length: 15
Cache-Control: no-cache
{"routed":true}
RabbitMQ widzi komunikaty w kolejce:
eric@dev ~ $ sudo python rabbitmqadmin get queue=myqueue requeue=true count=10
+-------------+----------+---------------+---------------------------------------+---------------+------------------+------------+-------------+
| routing_key | exchange | message_count | payload | payload_bytes | payload_encoding | properties | redelivered |
+-------------+----------+---------------+---------------------------------------+---------------+------------------+------------+-------------+
| abcxyz | kowalski | 10 | foobar | 6 | string | | True |
| abcxyz | kowalski | 9 | {'testdata':'test'} | 19 | string | | True |
| abcxyz | kowalski | 8 | {'mykey':'myvalue'} | 19 | string | | True |
| abcxyz | kowalski | 7 | {'mykey':'myvalue'} | 19 | string | | True |
+-------------+----------+---------------+---------------------------------------+---------------+------------------+------------+-------------+
sudo python rabbitmqadmin get queue=myqueue requeue=true count=10
aby zobaczyć wiadomości lub usunąć z kolejki wiadomości od końca, a następnie ponownie umieścić je na wierzchu. Czy istnieje sposób, aby po prostu zobaczyć wiadomości zamiast je usuwać?
rabbitmqadmin
sudo jest tutaj potrzebne, gdy łączy się z internetowym interfejsem API?
requeue=True
Napisałem rabbitmq-dump-queue, która umożliwia zrzucanie wiadomości z kolejki RabbitMQ do plików lokalnych i ponowne wpisywanie wiadomości w ich oryginalnej kolejności.
Przykładowe użycie (aby zrzucić pierwsze 50 wiadomości z kolejki incoming_1
):
rabbitmq-dump-queue -url="amqp://user:password@rabbitmq.example.com:5672/" -queue=incoming_1 -max-messages=50 -output-dir=/tmp
możesz użyć RabbitMQ API, aby uzyskać licznik lub wiadomości:
/api/queues/vhost/name/get
Pobierz wiadomości z kolejki. (To nie jest HTTP GET, ponieważ zmieni stan kolejki). Powinieneś opublikować treść wyglądającą następująco:
{"count":5,"requeue":true,"encoding":"auto","truncate":50000}
count kontroluje maksymalną liczbę otrzymywanych wiadomości. Możesz otrzymać mniej komunikatów, jeśli kolejka nie może ich natychmiast dostarczyć.
rekeue określa, czy wiadomości zostaną usunięte z kolejki. Jeśli requeue jest prawdziwe, zostaną one ponownie ustawione, ale ich flaga ponownego dostarczenia zostanie ustawiona. kodowanie musi mieć wartość „auto” (w takim przypadku ładunek zostanie zwrócony jako ciąg znaków, jeśli jest prawidłowy w formacie UTF-8, aw innym przypadku zakodowany w base64) lub „base64” (w takim przypadku ładunek będzie zawsze zakodowany w formacie base64). Jeśli truncate jest obecne, obcina ładunek wiadomości, jeśli jest większy niż podany rozmiar (w bajtach). obcięcie jest opcjonalne; wszystkie inne klucze są obowiązkowe.
Należy pamiętać, że ścieżki publikowania / pobierania w interfejsie HTTP API są przeznaczone do wstrzykiwania wiadomości testowych, diagnostyki itp. - nie zapewniają niezawodnego dostarczania i dlatego powinny być traktowane jako narzędzie administratora systemu, a nie ogólne API do przesyłania wiadomości.
http://hg.rabbitmq.com/rabbitmq-management/raw-file/rabbitmq_v3_1_3/priv/www/api/index.html
trochę za późno, ale tak, rabbitmq ma wbudowany program śledzący, który pozwala zobaczyć nadchodzące wiadomości w dzienniku. Po włączeniu możesz po prostu tail -f /var/tmp/rabbitmq-tracing/.log
(na Macu) oglądać wiadomości.
szczegółowy opis znajduje się tutaj http://www.mikeobrien.net/blog/tracing-rabbitmq-messages