4. Manipular mensajes con JMS Active MQ
En la clase de hoy vamos a aprender cómo manipular mensajes con JMS Active MQ. Para poder crear aplicaciones asíncronas, es necesario almacenar en una Queue o un Topic los datos de un evento de Mule.
Topics y Queues
Antes de comenzar la clase, es necesario saber la diferencia entre Topics y Queues, ya que este concepto no solamente existe en la especificación JMS de ActiveMQ.
Queue
Este modelo de mensajería es llamado PTP (point-to-point o 1:1).
1.El Productor envía el mensaje a la Queue. 2.Un Consumidor lee la Queue y observa que hay un mensaje. 3.El Consumidor bloquea el mensaje de la Queue para que ningún otro Consumidor pueda procesar el mensaje. 4.El propio Consumidor elimina el mensaje de la Queue una vez procesado.
Cuando el mensaje es enviado a la Queue se mantiene hasta que un Consumidor lo procese correctamente y lo elimine.
A continuación, os dejo un diagrama donde se observa el comportamiento descrito anteriormente.
Topic
Este modelo de mensajería de JMS Active MQ es llamado Pub-Sub (Publish/Suscribe o 1:muchos).
1.El Publicador publica el mensaje en el Topic. 2.Todos los Suscriptores activos procesarán el mensaje. 3.El mensaje deja de estar publicado en el Topic y desaparece.
Cuando un Publicador publica un mensaje, independientemente de si hay Suscriptores, no guardará el mensaje.
A continuación os dejo un diagrama de este escenario descrito.
Java Message Service
Es un conector llamado JMS que permite enviar y recibir mensajes a Queues y Topics para cualquier servicio de mensajes que implemente la especificación JMS.
Permite que la comunicación entre diferentes componentes de una aplicación distribuida sea débilmente acoplada, confiable y asíncrona.
En la clase de hoy utilizaremos las siguientes acciones del conector:
- Publish. Este componente, de tipo Event Processor, nos permite publicar o enviar un mensaje a un Topic o una Queue.
- On New Message. Este componente, de tipo Event Source, se utiliza como Listener de una Queue o un Topic para saber si hay un mensaje nuevo y procesarlo.
Por cierto, el componente On New Message también se considera un Trigger, ya que inicia un evento de Mule si existe un mensaje nuevo.
Espero que os guste la última clase de Triggers.
Sin más, Manipular mensajes con JMS Active MQ ¡dentro vídeo!
Clases del curso
- 1. Trigger de un evento Mule con archivos (28:12)
- 2. Sincronizar datos con Watermarks (37:01)
- 3. Sincronizar con Watermark y Object Store (58:54)
- 4. Manipular mensajes con JMS Active MQ (27:21)
- Punto de control 1
- 5. Procesar ítems con For Each (28:39)
- 6. Procesar datos con Batch Job (22:24)
- 7. Filtrar y agregar con Batch Step y Aggregator (13:38)
- Punto de control 2