Message Brokers

menu icon

Message Brokers

Los message brokers son una tecnología de comunicación entre aplicaciones para ayudar a crear un mecanismo de integración común para dar soporte a arquitecturas de nube nativas, basadas en microservicios, sin servidor y basadas en la nube.

¿Qué es un message broker?

Un message broker es un software que permite a las aplicaciones, sistemas y servicios comunicarse entre sí e intercambiar información. El message broker desempeña esta función traduciendo mensajes entre protocolos de mensajería formal. Esto permite que los servicios interdependientes "hablen" entre sí directamente, incluso si fueron escritos en diferentes idiomas o implementados en diferentes plataformas.

Los message brokers son módulos de software dentro de soluciones de middleware de mensajería o middleware orientado a mensajes (MOM). Este tipo de middleware proporciona a los desarrolladores un medio estandarizado de manejar el flujo de datos entre los componentes de una aplicación para que puedan centrarse en su lógica principal. Puede servir como una capa de comunicaciones distribuidas que permite que las aplicaciones que abarcan varias plataformas se comuniquen internamente.

Los message brokers pueden validar, almacenar, direccionar y entregar mensajes a los destinos adecuados. Sirven como intermediarios entre otras aplicaciones, lo que permite a los remitentes emitir mensajes sin saber dónde están los receptores, si están activos o no, o cuántos de ellos hay. Esto facilita el desacoplamiento de procesos y servicios dentro de los sistemas.

Con el fin de proporcionar almacenamiento de mensajes fiable y entrega garantizada, los message brokers a menudo se basan en una subestructura o componente denominado cola de mensajes que almacena y ordena los mensajes hasta que las aplicaciones consumidoras puedan procesarlos. En una cola de mensajes, los mensajes se almacenan en el orden exacto en el que se transmitieron y permanecen en la cola hasta que se confirma la recepción.

Mensajería asíncrona (15:11) hace referencia al tipo de comunicación entre aplicaciones que permiten los message brokers. Evita la pérdida de datos valiosos y permite que los sistemas sigan funcionando incluso ante los problemas de conectividad o latencia intermitentes comunes en las redes públicas. La mensajería asíncrona garantiza que los mensajes se entregarán una vez (y una sola vez) en el orden correcto en relación con otros mensajes.

Los message brokers pueden contar con gestores de colas para manejar las interacciones entre varias colas de mensajes, así como servicios que proporcionan funciones de direccionamiento de datos, conversión de mensajes, persistencia y gestión de estado del cliente.

Modelos de message broker

Los message brokers ofrecen dos patrones básicos de distribución de mensajes o estilos de mensajería:

  • Mensajería de punto a punto: este es el patrón de distribución que se utiliza en las colas de mensajes con una relación unívoca entre el remitente y el destinatario del mensaje. Cada mensaje de la cola se envía a un solo destinatario y se consume sólo una vez. La mensajería de punto a punto es llamada cuando un mensaje debe actuar sólo una vez. Ejemplos de casos de uso adecuados para este estilo de mensajería incluyen el procesamiento de transacciones financieras y de nóminas. En estos sistemas, tanto los remitentes como los receptores necesitan una garantía de que cada pago se enviará una vez y sólo una vez.
  • Mensajería de publicación/suscripción: en este patrón de distribución de mensajes, a menudo denominado "pub/sub", el productor de cada mensaje lo publica en un tema y varios consumidores de mensajes se suscriben a temas sobre los cuales desean recibir mensajes. Todos los mensajes publicados en un tema se distribuyen a todas las aplicaciones suscritas. Se trata de un método de distribución de estilo de difusión, en el que existe una relación entre el editor del mensaje y sus consumidores. Por ejemplo, si una aerolínea difunde actualizaciones sobre las horas de aterrizaje o el estado de retraso de sus vuelos, varias partes podrían utilizar esta información: tripulaciones terrestres que realizan mantenimiento y reabastecimiento de aviones, manipuladores de equipaje, comisarios de abordo y pilotos que se preparan para el próximo viaje del avión, y los operadores de las pantallas que informan al público. Un estilo de mensajería pub/sub sería adecuado para su uso en este caso de ejemplo.

Message brokers en arquitecturas de nube

Se crean aplicaciones nativas en la nube para aprovechar los beneficios inherentes de la computación en la nube, incluyendo la flexibilidad, la escalabilidad y la rápida implementación. Estas aplicaciones están formadas por componentes pequeños, discretos y reutilizables, denominados microservicios. Cada microservicio se implementa y puede ejecutarse independientemente de los demás. Esto significa que cualquiera de ellos se puede actualizar, escalar o reiniciar sin afectar a otros servicios del sistema. Los microservicios a menudo se empaquetan en contenedores y trabajan juntos para formar una aplicación completa, aunque cada uno tiene sus propios recursos, incluyendo una base de datos y un modelo de datos que pueden ser diferentes de los demás.

Los microservicios deben tener un medio de comunicación entre sí para trabajar juntos. Los message brokers son un mecanismo que utilizan para crear esta columna vertebral de comunicaciones compartidas.

Los message brokers se utilizan a menudo para gestionar las comunicaciones entre sistemas locales y componentes de nube en entornos de nube híbrida. La utilización de un message broker proporciona un mayor control sobre las comunicaciones entre servicios, lo que garantiza que los datos se envíen de forma segura, fiable y eficaz entre los componentes de una aplicación. Los message brokers pueden desempeñar un rol similar en la integración de entornos multinube, lo que permite la comunicación entre cargas de trabajo y tiempos de ejecución que residen en distintas plataformas. También son muy adecuados para uso en la computación sin servidor, en la cual los servicios individuales hospedados en la nube se ejecutan bajo demanda por solicitud.

Message brokers vs. API

Las API REST se utilizan habitualmente para comunicaciones entre microservicios. El término "Representational State Transfer" (REST) define un conjunto de principios y restricciones que los desarrolladores pueden seguir al crear servicios web. Cualquier servicio que se adhiera a ellos podrá comunicarse a través de un conjunto de operadores y solicitudes uniformes sin estado compartido. La interfaz de programación de aplicaciones (API) indica el código subyacente que, si se ajusta a las reglas REST, permite que los servicios hablen entre sí.

Las API REST utilizan HTTP (Hypertext Transfer Protocol) para comunicarse. Debido a que HTTP es el protocolo de transporte estándar de Internet público, las API REST son ampliamente conocidas, se utilizan con frecuencia y son ampliamente interoperables. Sin embargo, HTTP es un protocolo de solicitud/respuesta, por lo que se utiliza mejor en situaciones que requieren una solicitud/respuesta síncrona. Esto significa que los servicios que realizan solicitudes a través de las API REST deben estar diseñados para esperar una respuesta inmediata. Si el cliente que recibe la respuesta está inactivo, el servicio de envío se bloqueará mientras espera la respuesta. Debe incorporarse una lógica de gestión de errores y conmutación por error en ambos servicios.

Los message brokers permiten comunicaciones asíncronas entre servicios para que el servicio de envío no tenga que esperar la respuesta del servicio receptor. Esto mejora la tolerancia a errores y la resiliencia en los sistemas en los que están empleados. Además, el uso de los message brokers facilita la escala de los sistemas, ya que un patrón de mensajería de publicación/suscripción puede soportar fácilmente el cambio de número de servicios. Los message brokers también realizan un seguimiento de los estados de los consumidores.

Message brokers vs. plataformas de streaming de eventos

Mientras que los message brokers pueden dar soporte a dos o más patrones de mensajería, incluyendo colas de mensajes y publicación/suscripción, las plataformas de streaming de eventos sólo ofrecen patrones de distribución de publicación/suscripción. Diseñado para uso con grandes volúmenes de mensajes, las plataformas de streaming de eventos son fácilmente escalables. Son capaces de ordenar secuencias de registros en categorías llamadas temas y almacenarlas durante un periodo de tiempo predeterminado. Sin embargo, a diferencia de los message brokers, las plataformas de streaming de eventos no pueden garantizar la entrega de mensajes o identificar cuáles consumidores recibieron mensajes.

Las plataformas de streaming de eventos ofrecen más escalabilidad que los message brokers, pero menos características que garantizan la tolerancia a errores (como el reenvío de mensajes), así como funciones de direccionamiento y colas de mensajes más limitadas.

Obtenga más información acerca de la arquitectura basada en eventos.

Message broker vs. ESB (bus de servicio empresarial)

Un bus de servicio empresarial (ESB) es un patrón de arquitectura que a veces se utiliza en arquitecturas orientadas a servicios implementadas en empresas. En un ESB, una plataforma de software centralizada combina protocolos de comunicación y formatos de datos en un "lenguaje común" que todos los servicios y aplicaciones de la arquitectura pueden compartir. Puede, por ejemplo, traducir las solicitudes que recibe de un protocolo (como XML) a otro (por ejemplo, JSON). Los ESBs transforman sus cargas útiles de mensajes utilizando un proceso automatizado. La plataforma de software centralizada también maneja otra lógica de orquestación, como la conectividad, el direccionamiento y el procesamiento de solicitudes.

Sin embargo, las infraestructuras de ESB son complejas y pueden ser difíciles de integrar y costosas de mantener. Es difícil solucionar problemas cuando se producen en los entornos de producción, cuando no son fáciles de escalar y la actualización es tediosa.

Los message brokers son una alternativa "ligera" a los ESBs que proporcionan una funcionalidad similar, un mecanismo para las comunicaciones entre servicios, más simple y a menor costo. Son muy adecuados para uso en las arquitecturas de microservicios que se han vuelto más frecuentes ya que los ESBs se han quedado atrás.

Casos de uso de message brokers

La implementación de los message brokers puede hacer frente a una amplia variedad de necesidades empresariales en todas las industrias y en diversos entornos de informática empresarial. Son muy útiles cuando se requieren una comunicación fiable entre aplicaciones y una entrega de mensajes garantizada.

Los message brokers suelen emplearse de las siguientes maneras:

  • Operaciones financieras y procesamiento de pagos: es fundamental tener la garantía de que los pagos se envían una vez y sólo una vez. La utilización de un message broker para manejar los datos de estas transacciones ofrece la garantía de que la información de pago no se perderá ni se duplicará accidentalmente, proporciona pruebas de la recepción y permite que los sistemas se comuniquen de forma fiable incluso cuando las redes intermediarias estén desactivadas.
  • Procesamiento y cumplimiento de pedidos de comercio electrónico: si hace negocios en línea, la fuerza de la reputación de su marca depende de la fiabilidad de su sitio web y de la plataforma de comercio electrónico. La capacidad de los message brokers para mejorar la tolerancia a errores y garantizar que los mensajes se consuman una vez y sólo una vez los convierte en una opción natural para utilizar en el procesamiento de pedidos en línea.
  • Protección de datos altamente confidenciales en reposo y en tránsito: si pertenece a una industria está altamente regulada o su negocio enfrenta riesgos de seguridad significativos, elija una solución de mensajería con funciones de cifrado end-to-end.

Message brokers e IBM Cloud

Los message brokers son cada vez más importantes a medida que las organizaciones modernizan sus aplicaciones en la ruta hacia la nube. Muchas de las empresas con más éxito del mundo, incluido el 85 % de Fortune 100, confían en las capacidades de los message brokers de IBM, que se crean para dar soporte a los actuales entornos de desarrollo ágil, a las infraestructuras de nube híbrida basadas en microservicios y a una variedad de tipos de sistemas y requisitos de conectividad.

Dé el siguiente paso: Obtenga información sobre IBM Cloud Pak for Integration, que se basa en la capacidad principal de IBM MQ, la solución de mensajería empresarial líder.

Empiece hoy mismo con una cuenta de IBM Cloud.