Una cola de mensajes es un componente de las soluciones de middleware de mensajería que permite que aplicaciones y servicios independientes intercambien información.
Las colas de mensajes almacenan "mensajes" o paquetes de datos que las aplicaciones crean para que otras aplicaciones los utilicen en el orden en que se transmiten hasta que la aplicación consumidora pueda procesarlos. Esto permite que los mensajes esperen de forma segura hasta que la aplicación receptora esté lista, de modo que si hay algún problema con la red o la aplicación receptora, los mensajes de la cola de mensajes no se pierden.
Este modelo, conocido como mensajería asíncrona, evita la pérdida de datos y permite que los sistemas sigan funcionando si fallan los procesos o las conexiones. Esto permite a los desarrolladores separar los procesos y las aplicaciones, manteniendo sus comunicaciones autocontenidas y basadas en eventos para que la arquitectura sea más fiable.
Las colas de mensajes están disponibles en soluciones de mensajería en numerosas opciones de despliegue, incluidos dispositivos físicos optimizados, servicios en la nube, mainframes y como software.
Las soluciones de colas de mensajes se utilizan ampliamente en todas las industrias. Ofrecen una serie de beneficios tanto para desarrolladores como para administradores de sistemas, incluidos los siguientes:
Los entornos informáticos empresariales actuales son complejos y están muy descentralizados. La mensajería facilita la integración de aplicaciones y servicios en diversas plataformas al proporcionar una columna vertebral de mensajería compartida única, robusta y segura. Esto protege contra la pérdida de datos y garantiza que los sistemas sigan funcionando incluso con una conectividad inestable.
Las colas de mensajes son especialmente adecuadas para integrar sistemas backend on premises con servicios en la nube. En las arquitecturas en nube, las aplicaciones suelen dividirse en componentes pequeños e independientes. Esto facilita su diseño y codificación, así como la gestión de su rendimiento. Las colas de mensajes permiten que estas aplicaciones desacopladas basadas en la nube se comuniquen entre sí o con los sistemas on-premises.
Las colas de mensajes aumentan la resiliencia de la arquitectura porque los mensajes pueden tener persistencia. Esto significa que se almacenan en el disco hasta que el servicio que recibe el mensaje confirma su procesamiento. Las colas de mensajería se pueden utilizar en escenarios que requieren altos niveles de seguridad, tolerancia a fallos y precisión, como el procesamiento de transacciones financieras, la reserva de viajes aéreos o la actualización de registros sanitarios de pacientes.
Las colas de mensajes también se pueden usar para permitir que las aplicaciones y sistemas que residen en diferentes nubes (ya sea nube pública o nube privada) se comuniquen, incluso si se encuentran en diferentes países o incluso en continentes remotos. El uso de una cola de mensajes aumenta la tolerancia a errores y se puede emplear para evitar que los datos se dupliquen o se pierdan en sistemas geográfica y técnicamente Dispar. Debido a que cada servicio dentro del sistema está desacoplado o separado lógicamente de los demás, cada uno puede Continuar funcionando si otros servicios o aplicaciones fallan o se detienen.
Las colas de mensajes funcionan en aplicaciones dispares, como móviles, IoT y registros de sistemas de transacciones tradicionales. También admiten varias plataformas, como máquinas virtuales y contenedores, y pueden permitir la integración entre aplicaciones heredadas y las últimas soluciones actuales.
Las colas de mensajes utilizan un patrón de mensajería punto a punto, en el que una aplicación (llamada remitente) envía un mensaje a la cola y otra aplicación (llamada receptor) obtiene el mensaje de la cola y lo utiliza. Debe haber una relación uno a uno estrechamente acoplada entre el remitente y el consumidor, y cada mensaje debe consumirse solo una vez.
Si las aplicaciones requieren que los mensajes se distribuyan a varias partes, se pueden combinar varias colas de mensajes o se puede usar un modelo de mensajería de publicación/suscripción (pub/sub).
En la mensajería pub/sub, la aplicación que produce el mensaje se denomina editor y las aplicaciones que lo utilizan son los suscriptores. Cada mensaje se publica en un tema y cada aplicación que se suscribe a ese tema obtiene una copia de todos los mensajes que se publican en él.
La mayoría de las soluciones de middleware de mensajería admiten tanto el modelo de cola de mensajes (punto a punto) como el de mensajería pub/sub.
Un bus de mensajes, que es un tipo de bus de servicios empresariales o ESB, permite a los servicios tener acceso ubicuo a los datos mientras garantiza que permanezcan desacoplados y funcionales de forma independiente dentro de una arquitectura de sistema distribuido. Cuando se emplea un bus de mensajes, todos los servicios o aplicaciones deben compartir tipos de datos comunes, un conjunto de comandos común y protocolos de comunicación comunes (aunque puedan estar escritos en lenguajes diferentes). Los consumidores pueden determinar cómo emplean los mensajes.
Para que las aplicaciones desacopladas se comuniquen a través de un bus de mensajes, los mensajes deben transformarse para que todos sean del mismo tipo. Por el contrario, las colas de mensajes transportan mensajes, ya sean del mismo tipo o de tipos diferentes.
Las aplicaciones pueden comunicar directamente a través de servicios sitio web o API basados en protocolos estándar, como Simple Object Access Protocol (SOAP) o HTTP, en lugar de a través de middleware de mensajería. Los servicios sitio web son ampliamente empleados en sistemas distribuidos, que son relativamente simples y fáciles de implementar, lo que los convierte en una alternativa viable a las colas de mensajes en ciertos casos de uso y escenarios.
Sin embargo, a diferencia de las colas de mensajes, los servicios web no pueden garantizar la entrega de mensajes. Si el servidor o la conexión fallan, deberá crear la capacidad de gestionar el error dentro del cliente. Los servicios web también carecen de modelos de distribución pub/sub. El middleware de mensajería ofrece una mayor tolerancia a fallos y una mejor capacidad para gestionar tráfico intenso o ráfagas de actividad.
Para Aprenda más sobre cuándo emplear las API, cuándo emplear la mensajería o cuándo emplear ambas, consulte "Introducción a las API y la mensajería".
Las bases de datos se pueden utilizar como alternativa a las colas de mensajes en determinadas situaciones. Sin embargo, sirven para diferentes propósitos y no son fácilmente intercambiables la mayor parte del tiempo. Las bases de datos se utilizan más comúnmente para el almacenamiento y le permiten acceder a la misma información una y otra vez. Las colas de mensajes no se pueden utilizar con fines de almacenamiento. Una vez que se ha consumido un mensaje, se elimina de la cola.
Es posible diseñar una funcionalidad similar a una cola de mensajes en una base de datos, pero requiere una gran cantidad de esfuerzo y conocimiento de programación. Las bases de datos solo se pueden usar para replicar estructuras de cola simples y no son escalables para aplicaciones más grandes.
Consulte “A Brief Overview of the Database Landscape” para obtener más información sobre las bases de datos y sus capacidades.
La cola de mensajes es tradicionalmente administrada por equipos dedicados dentro de TI. Pero la entrega “como servicio”, mediante una cola de mensajes alojada en la nube , puede permitir que los usuarios individuales o de la línea de negocio (LOB) aplicar cambios a la infraestructura de mensajería por su cuenta, a través de un portal, lo que puede aumentar la agilidad.
La cola de mensajes como servicio naturalmente funciona bien dentro de arquitecturas sin servidor o de microservicios comunes en el desarrollo nativo de la nube . Debido a que se ofrece en un modelo de servicio alojado en la nube, el proveedor de la nube maneja todo el aprovisionamiento, la instalación y el mantenimiento de su infraestructura de mensajería, y está alojada en la nube.
Estos tutoriales le ayudarán si es nuevo en el desarrollo de aplicaciones que se comunican a través de IBM MQ:
Estos recursos adicionales le darán una visión general más completa:
La automatización impulsada por IA amplía la agilidad en API, aplicaciones, eventos, archivos y B2B/EDI.
Desbloquee el potencial de negocio con las soluciones de integración de IBM, que conectan aplicaciones y sistemas para acceder a datos críticos de forma rápida y segura.
Desbloquee nuevas capacidades e impulse la agilidad empresarial con los servicios de asesoramiento en la nube de IBM. Descubra cómo crear conjuntamente soluciones, acelerar la transformación digital y optimizar el rendimiento a través de estrategias de nube híbrida y asociaciones de expertos.