Message Broker
Tambien conocida como topología Hub and Spoke, es una topología de mensajerías que envía y recibe mensajes únicamente desde y hacia el “hub”. Las aplicaciones que envian estos mensaje ni conocen a los consumidores de estos mensajes. Esta topología de mensajería busca desacoplar a las aplicaciones entre sí, de tal manera que una aplicación remitente no requiera tener una noción del número o destino de las aplicaciones destinatarias del mensaje.
Las aplicaciones se comunican con el hub a través de extensiones del mismo que se conocen como spoke. Son APIs y protocolos específicos para cada aplicación, y que forman parte del hub en lugar de la app en sí.

El servicio de message broker que se utiliza en la solución es RabbitMQ. Es un software gratis y open-source. En su arquitectura implementa el protocolo AMQP (Advanced Message Queuing Protocol). En el siguiente diagrama se observa el lugar que ocupa RabbitMQ como servicio de mensajeria entre las aplicaciones y servicios de la solucion.

Una de las principales características es permitir la comunicación asíncrona lo cual asegura una transferencia robusta de datos. Esto se logra almacenando los mensajes en colas o queues. El receptor (consumidor) del mensaje no necesita aceptar directamente la información, procesarla y confirmar la recepción al remitente (productor). En cambio recoge el mensaje de la cola, permitiendo que el productor continúe trabajando sin tiempo de inactividad.
Otra caracterísitica muy importante es la interoperabilidad que ofrece el protocolo, ya que sirve como base común de comunicación, incluso entre aplicaciones escritas en diferentes lenguajes de programación.
Para transmitir mensajes el protocolo utiliza mediadores, corredores de mensajes en diferentes etapas del proceso. A continuación, se presenta un diagrama de los principales actores que participan en este proceso:

El productor es la aplicación que crea el mensaje y lo envía, el exchange acepta el mensaje y enruta la información a la cola correspondiente, esto es posible ya que ambos se encuentran identificados con una clave de ruta y una clave de enlace respectivamente. Existen 3 formas en que el exchange enruta los mensajes que recibe a los respectivos queues :
- Direct exchange: El intercambio de mensajes se da haciendo match de las claves de ruta del mensaje con su respectiva cola, uno a la vez. En caso de que existen varias colas con la misma clave de ruta, se replica el mensaje y se envia a cada una.
- Fanout exchange: En este caso se ignora la clave de ruta, y en su lugar, se envía el mensaje a todas las colas que se encuentren disponibles.
- Topic exchange: Similar al direct exchange, se hace uso de las claves de enrutamiento, pero esta vez no se busca un match exacto, sino se utliza un comodin,de esta manera es posible proveer de mensajeria a un un grupo especifico de múltiples colas.
f
Created with the Personal Edition of HelpNDoc: Free Web Help generator