uso tutorial source rabbit open casos rabbitmq rabbitmqctl

tutorial - ¿Es posible ver los contenidos de los mensajes de RabbitMQ directamente desde la línea de comandos?



rabbitmq tutorial (5)

¿Es posible ver los contenidos de los mensajes de RabbitMQ directamente desde la línea de comandos?

sudo rabbitmqctl list_queues enumera las colas.

¿Hay algún comando de comando como sudo rabbitmqctl list_queue_messages queue_name ?


Aquí están los comandos que uso para obtener el contenido de la cola:

RabbitMQ versión 3.1.5 en Fedora Linux usando https://www.rabbitmq.com/management-cli.html

Aquí están mis intercambios:

eric@dev ~ $ sudo python rabbitmqadmin list exchanges +-------+--------------------+---------+-------------+---------+----------+ | vhost | name | type | auto_delete | durable | internal | +-------+--------------------+---------+-------------+---------+----------+ | / | | direct | False | True | False | | / | kowalski | topic | False | True | False | +-------+--------------------+---------+-------------+---------+----------+

Aquí está mi cola:

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 | +-------+----------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------------+--------+---------+

Mezcle algunos elementos en 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 ve mensajes en cola:

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 | +-------------+----------+---------------+---------------------------------------+---------------+------------------+------------+-------------+


Debe habilitar el complemento de administración.

rabbitmq-plugins enable rabbitmq_management

Mira aquí:

http://www.rabbitmq.com/plugins.html

Y aquí para los detalles de la gestión.

http://www.rabbitmq.com/management.html

Finalmente, una vez configurado, deberá seguir las instrucciones a continuación para instalar y usar la herramienta rabbitmqadmin. Que se puede usar para interactuar completamente con el sistema. http://www.rabbitmq.com/management-cli.html

Por ejemplo:

rabbitmqadmin get queue=<QueueName> requeue=false

le dará el primer mensaje de la cola.


Escribí rabbitmq-dump-queue que permite descargar mensajes de una cola de RabbitMQ a archivos locales y volver a ordenar los mensajes en su orden original.

Ejemplo de uso (para volcar los primeros 50 mensajes de la cola incoming_1 ):

rabbitmq-dump-queue -url="amqp://user:[email protected]:5672/" -queue=incoming_1 -max-messages=50 -output-dir=/tmp


puedes usar RabbitMQ API para obtener conteo o mensajes:

/api/queues/vhost/name/get

Recibe mensajes de una cola. (Esto no es un HTTP GET, ya que alterará el estado de la cola). Debería publicar un cuerpo con el siguiente aspecto:

{"count":5,"requeue":true,"encoding":"auto","truncate":50000}

count controla la cantidad máxima de mensajes para obtener. Puede obtener menos mensajes que esto si la cola no puede proporcionarlos de inmediato.

requeue determina si los mensajes se eliminarán de la cola. Si el reabastecimiento es verdadero, se pondrán en cola, pero se establecerá su bandera reenviada. la codificación debe ser "auto" (en cuyo caso la carga útil se devolverá como una cadena si es válida UTF-8, y base64 codificada de otra manera), o "base64" (en cuyo caso la carga útil siempre estará codificada en base64). Si truncado está presente, truncará la carga útil del mensaje si es mayor que el tamaño dado (en bytes). truncar es opcional; todas las demás teclas son obligatorias.

Tenga en cuenta que las rutas de publicación / obtención en la API HTTP están destinadas a inyectar mensajes de prueba, diagnósticos, etc. No implementan la entrega confiable, por lo que deben tratarse como una herramienta de administrador de sistemas en lugar de una API general para mensajes.

http://hg.rabbitmq.com/rabbitmq-management/raw-file/rabbitmq_v3_1_3/priv/www/api/index.html


un poco tarde para esto, pero sí rabbitmq tiene una compilación en el rastreador que le permite ver los mensajes entrantes en un registro. Cuando está habilitado, puede simplemente tail -f /var/tmp/rabbitmq-tracing/.log (en mac) para ver los mensajes.

la descripción detallada está aquí http://www.mikeobrien.net/blog/tracing-rabbitmq-messages