parallel - rabbitmq queue
¿Por qué no puedes mirar los mensajes en Rabbit Queue? (9)
Desde luego, puedes mirar los contenidos de una cola en RabbitMQ o cualquier intermediario de AMQP. Solo consuma mensajes pero no los reconozca. Una vez que cierre el canal, los mensajes estarán disponibles para el consumo de sus consumidores "reales". Tenga en cuenta que hacerlo podría afectar el orden de los mensajes en la cola que inspecciona.
Además, el complemento de administración web que ofrece RabbitMQ le permite ver los contenidos de los mensajes desde la interfaz web. Si intenta depurar su sistema, es una herramienta muy útil.
Si mi comprensión es correcta, en realidad no puedes mirar mensajes en la cola de conejos sin sacarlos y volver a ponerlos. No hay forma de usar rabbitmqctl para inspeccionar una cola.
En algunos contextos de depuración, saber qué está actualmente en la cola es muy útil. ¿Hay alguna manera de llegar a los mensajes? Además, ¿qué tiene el diseño de Rabbit que hace este proceso engorroso?
Es posible obtener un mensaje sin reconocer y luego rechazarlo, que no sacaría el mensaje de la cola. Pero esto no se implementa en la herramienta de gestión.
Y también el mensaje está bloqueado hasta que se libere, lo que significa que ningún otro consumidor puede consumirlo antes de ser rechazado.
Hay una sección "Obtener mensajes" para cada cola en la API de administración. Sin embargo, esto hace que el mensaje se consuma y, por lo tanto, es una acción destructiva. Podemos volver a poner este mensaje en la cola solo a expensas de sacrificar el orden de los mensajes [para las versiones de rabbitmq <2.7.0].
Una alternativa más viable sería usar el trazador Firehose, http://www.rabbitmq.com/firehose.html [para versiones rabbitmq> 2.5]. Esto esencialmente publica el mensaje en un intercambio diferente (amq.rabbitmq.trace) solo para fines de depuración.
Aquí hay otra GUI escrita en la parte superior de la manguera de incendios para una mejor visibilidad, http://www.rabbitmq.com/blog/2011/09/09/rabbitmq-tracing-a-ui-for-the-firehose/
No hay una manera sensata de mirar una cola, pero tal vez monitorear lo que entra es un sustituto suficiente. Para hacer esto, debe implementar un monitor man-in-the-middle. Esto requiere que los clientes cooperen: debe enseñar a todos los remitentes o a todos los receptores a utilizar un intercambio diferente.
Supongamos que desea monitorear mensajes para intercambiar "foo". Usted crea un intercambio (directo) llamado "foo-in" (o lo que sea), configura "foo" como un intercambio alternativo para "foo-in" y le enseña a todos sus remitentes a enviar sus mensajes al "foo-in" intercambio en lugar de "foo".
El monitor de cola debe escuchar "foo-in" y volver a publicar todos los mensajes en "foo". Cuando el monitor no esté funcionando, rabbitmq lo encaminará a "foo" por sí mismo; la penalidad de rendimiento para esto es insignificante.
Esta es una extensión rabbitmq. Consulte http://www.rabbitmq.com/ae.html para obtener detalles sobre cómo funcionan los intercambios alternativos. Por supuesto, puede usar "foo" y "foo-out", respectivamente, si eso es más fácil de hacer en su configuración.
Monitorear una cola específica (nuevamente: entrada de cola, no salida) es más fácil pero nuevamente requiere cambiar el cliente (o el código que crea sus colas, si son persistentes). Configure un intercambio de despliegue, vincule la cola del cliente a eso y luego vincule el cambio al origen de los mensajes originales. Esta es otra extensión rabbitmq; ver http://www.rabbitmq.com/e2e.html . Su monitor simplemente necesita vincularse a ese intercambio y obtendrá copias de todos los mensajes enviados a la cola del cliente.
No he usado esto personalmente aún, pero vi el plugin de administración de RabbitMQ que pensé que te permitía monitorear la cola.
Podrías meterlos en otra cosa antes de enviarlos a RabbitMQ. Escribí el software de cola de mensajes para hacer esto. Consulte http://qdb.io/
Puede usar el Visor de cola ( https://www.queueviewer.com ). Requiere que el complemento de administración de RabbitMQ esté habilitado.
Esto es viejo, pero solo para cualquiera interesado en esto. Al visitar las Queues
, tiene una lista de todas las colas del intermediario.
Presione cualquier cola que le interese y desplácese hacia abajo para encontrar esta sección
La opción realmente importante para establecer aquí es la opción Requeue
. Si está configurado en Yes
, esta operación consumirá el mensaje, por lo que puede leerlo, pero lo volverá a poner en la cola, para que no se pierda.