Modelo Publicacion Subscripcion - Tensho97/Aprende-a-Aprender GitHub Wiki

En este modelo, un mensaje puede consumirse por múltiples consumidores (1:N). El destino de un mensaje se conoce como tópico. Un tópico no funciona como un pila, ya que los mensajes en los tópicos no se encolan. De hecho, un nuevo mensaje en el tópico sobrescribirá cualquier mensaje existente. Así pues, bajo este modelo de difusión, los productores/emisores/publicadores publican el mensaje en un tópico, y los consumidores se subscriben al tópico.

En este modelo, los publicadores (emisores) y los subscriptores (receptores) normalmente son anónimos y pueden, de forma dinámica, publicar o subscribirse a la jerarquía de contenidos. El sistema de mensajería se encarga de distribuir los mensajes que llegan al tópico de los múltiples publicadores a sus respectivos subscriptores, mediante un mecanismo push, de modo que los mensajes se envían automáticamente a los subscriptores.

La mensajería Pub/Sub tiene las siguientes características:

  • Cada mensaje puede tener múltiples consumidores
  • Existe un dependencia temporal entre los publicadores y los subscriptores perecederos (non-durable) ya que un cliente que se subscribe a un tópico puede consumir los mensajes publicados después de la subscripción, y el subscriptor debe continuar conectado para consumir los posteriores mensajes.

El API JMS disminuye esta dependencia temporal permitiendo a los clientes crear subscripciones duraderas (durable). Las subscripciones duraderas permiten recibir mensajes que fueron enviados cuando los subscriptores no estaban conectados. De este modo, las subscripciones duraderas ofrecen flexibilidad y fiabilidad a las colas pero aun así permiten a los clientes enviar mensajes a múltiples recipientes.

Al poder haber múltiples publicadores y múltiples consumidores en el mismo tópico, el modelo Pub/Sub es especialmente útil en situaciones donde un grupo de aplicaciones quiere notificar a otras de un evento particular. Por ejemplo, una aplicación de CRM, al crear un cliente, puede necesitar comunicar a otras aplicaciones la creación de este cliente.



Autor: Miguel