RabbitMQ es perfecto para esta situación. Tienes varias opciones para hacer lo que quieres. Sugiero leer la documentación para obtener una mejor comprensión. Sugeriría que uses un tema o un intercambio directo. El tema es más flexible. Dice así.
El código del productor se conecta al RabbitMQ Broker y crea e intercambia con un nombre específico.
El productor publica en el intercambio. Cada mensaje publicado se publicará con una clave de enrutamiento.
El consumidor se conecta al intermediario RabbitMQ.
Consumidor crea cola
Consumidor se une a la cola de la bolsa, el mismo cambio definido en el productor. El enlace también incluye las claves de enrutamiento para cada mensaje requerido para este consumidor en particular.
Digamos que estaba publicando mensajes de registro. La clave de enrutamiento puede ser algo como "log.info", "log.warn", "log.error". Cada mensaje publicado por el productor tendrá adjunta la clave de enrutamiento correspondiente. Luego tendrá un consumidor que envía y envía por correo electrónico todos los mensajes de error y otro que escribe todos los mensajes de error en un archivo. Por lo tanto, el e-mail definirá el enlace de su cola al intercambio con la clave de enrutamiento "log.error". De esta manera, aunque el intercambio recibe todos los mensajes, la cola definida para el correo electrónico solo contendrá los mensajes de error. El registrador de archivos definirá una nueva cola separada vinculada al mismo intercambio y configurará una clave de enrutamiento diferente. Podría hacer tres enlaces separados para las tres claves de enrutamiento diferentes, o simplemente usar el comodín "log. *" Para solicitar todos los mensajes del intercambio que comiencen con el registro.
Este es un ejemplo simple que muestra cómo puede lograr lo que quiere hacer.
mirada here para ejemplos código de número de serie en concreto tutorial 5.
Si realmente su consumidor tiene que suscribirse ** ** (no está interesado en los mensajes que se publican _antes_ la suscripción), la suscripción (y vinculante con regla de selección) no es una _queue_ existente sino un _exchange_ existente (como se responde a continuación). Luego, la redacción de la pregunta debe ser editada. – Myobis