Inicio
Topics
Colas de mensajes: Introducción
Una cola de mensajes es un componente de las soluciones de middleware de mensajería que permite intercambiar información entre aplicaciones y servicios independientes. Las colas de mensajes almacenan "mensajes" (paquetes de datos que las aplicaciones crean para que otras aplicaciones los consuman) en el orden en el 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é preparada, por lo que si hay un problema con la aplicación de red o receptora, los mensajes en 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. De esta forma, los desarrolladores pueden mantener los procesos y las aplicaciones separados, y sus comunicaciones autocontenidas y basadas en sucesos para que la arquitectura sea más fiable.
Las colas de mensajes están disponibles en las soluciones de mensajería a través de numerosas opciones de despliegue, por ejemplo, los dispositivos físicos optimizados, los servicios de cloud, los mainframes y como software.
Las soluciones de colas de mensajes se utilizan ampliamente en todos los sectores y ofrecen múltiples beneficios tanto para los desarrolladores como para los administradores de sistemas, incluidos los siguientes:
Los entornos informáticos de las empresas actuales son complejos y altamente descentralizados. La mensajería facilita la integración de aplicaciones y servicios en diversas plataformas, ya que proporciona una única infraestructura de mensajería compartida sólida y segura. 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 de back-end locales con servicios de cloud. En las arquitecturas de cloud, las aplicaciones a menudo se desglosan en pequeños componentes independientes. Esto hace que sea más fácil diseñarlas y codificarlas, así como gestionar su rendimiento. Las colas de mensajes permiten que estas aplicaciones desacopladas basadas en el cloud se comuniquen entre sí o con sistemas locales.
Las colas de mensajes aumentan la resiliencia de la arquitectura, porque los mensajes pueden tener persistencia. Esto significa que se almacenan en disco hasta que el servicio que recibe el mensaje confirme el proceso. Las colas de mensajes se pueden utilizar en escenarios que requieren altos niveles de seguridad, tolerancia a errores y precisión, por ejemplo, procesos de transacciones financieras, reserva de billetes de avión o actualización de historiales de pacientes en la asistencia sanitaria.
Las colas de mensajes también se pueden utilizar para que las aplicaciones y los sistemas que residen en diferentes clouds (ya sea un cloud público o un cloud privado) puedan comunicarse, aunque estén ubicados en diferentes países o incluso en continentes remotos. El uso de una cola de mensajes aumenta la tolerancia a errores, además de impedir que los datos se dupliquen o se pierdan en sistemas geográfica y técnicamente dispares. Como cada servicio en el sistema está desacoplado, o lógicamente separado de los demás, cada uno puede seguir funcionando si los otros servicios o aplicaciones fallan o se bloquean.
Las colas de mensajes funcionan en distintas aplicaciones, por ejemplo, en aplicaciones móviles, de IoT y de registros de sistemas transaccionales tradicionales. También admiten varias plataformas, por ejemplo, máquinas virtuales y contenedores, además de habilitar la integración entre las aplicaciones heredadas y las últimas soluciones actuales.
Cola de mensajes frente a pub/sub
Las colas de mensajes utilizan un patrón de mensajería de punto a punto, donde una aplicación (llamada remitente) envía un mensaje a la cola y otra aplicación (llamada destinatario) recibe el mensaje de la cola y lo consume. Debe haber una relación de uno a uno estrechamente acoplada entre el remitente y el consumidor, y cada mensaje debe consumirse solo una vez.
Si sus aplicaciones requieren la distribución de mensajes 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 de pub/sub, la aplicación que genera el mensaje se denomina aplicación de publicación y las aplicaciones que la consumen 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 mensaje publicados en él.
La mayoría de las soluciones de middleware de mensajería admiten los modelos de cola de mensajes (punto a punto) y de mensajería de pub/sub.
Cola de mensajes frente al bus de mensajes
Un bus de mensajes (un tipo de bus de servicio empresarial o ESB) permite que los servicios tengan una acceso generalizado a los datos, a la vez que garantiza que permanezcan desacoplados e independientemente operativos dentro de una arquitectura de sistemas distribuidos. Cuando utiliza un bus de mensajes, todos los servicios o aplicaciones deben compartir tipos de datos comunes, un conjunto de mandatos común y protocolos de comunicación comunes (aunque estén escritos en diferentes lenguajes). Los consumidores pueden determinar cómo utilizan los mensajes.
Si las aplicaciones desacopladas se van a comunicar a través de un bus de mensajes, los mensajes deben transformarse para que todos sean del mismo tipo. En cambio, las colas de mensajes transportan mensajes, independientemente de si son del mismo tipo o no.
Colas de mensajes frente a servicios web
Las aplicaciones pueden comunicarse directamente a través de servicios web o API basadas en protocolos estándar, por ejemplo, el protocolo de acceso a objetos simple (SOAP) o HTTP, en lugar de a través de middleware de mensajería. Los servicios web se utilizan ampliamente en los sistemas distribuidos, relativamente simples y fáciles de implementar, lo que los convierte en una alternativa viable a las colas de mensajes en determinados casos de uso y escenarios.
Sin embargo, a diferencia de las colas de mensajes, los servicios web no pueden garantizar la entrega del mensaje. Si falla el servidor o la conexión, debe desarrollar la capacidad para manejar el error dentro del cliente. Los servicios web también carecen de modelos de distribución de pub/sub. El middleware de mensajería ofrece una mayor tolerancia a errores y una mayor capacidad para manejar el tráfico intenso o los picos de actividad.
Para obtener más información sobre cuándo utilizar las API, cuándo utilizar la mensajería o cuándo utilizar ambas, consulte "Una introducción a las API y la mensajería".
Cola de mensajes frente a bases de datos
Las bases de datos se pueden usar como una alternativa a las colas de mensajes en determinadas situaciones, pero gran parte del tiempo sirven para diferentes propósitos y no son fácilmente intercambiables. Las bases de datos son las más utilizadas para el almacenamiento y 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 una funcionalidad de tipo cola de mensajes en una base de datos, pero requiere una gran cantidad de conocimientos y trabajo de codificació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 "Una breve descripción del entorno de la base de datos" para obtener más información sobre bases de datos y sus prestaciones.
La gestión de la cola de mensajes recae tradicionalmente sobre equipos dedicados del departamento de TI. No obstante, la entrega "como servicio" (usando una cola de mensajes alojada en el cloud) puede permitir que usuarios individuales o de línea de negocio (LOB) soliciten cambios en la infraestructura de mensajería por su cuenta, a través de un portal, lo que puede aumentar agilidad.
La cola de mensajes como servicio funciona bien en las arquitecturas sin servidor o de microservicios que son comunes en el desarrollo nativo en el cloud. Como se ofrece en un modelo de servicio alojado en el cloud, el proveedor de cloud se encarga de todo el suministro, la instalación y el mantenimiento de su infraestructura de mensajería, y está alojado en el cloud.
Estos tutoriales le ayudarán si no tiene experiencia en el desarrollo de aplicaciones que se comunicar a través de IBM MQ:
Estos recursos adicionales le darán una visión general más completa:
IBM Cloud Pak for Integration combina la automatización de IA y un conjunto completo de herramientas de integración para conectar aplicaciones y datos en cualquier entorno de cloud o local.
Descubra cómo las soluciones de cloud híbrido creadas con IBM Cloud pueden ayudar a su organización a migrar al cloud, a modernizar las aplicaciones existentes y a crear nuevas aplicaciones nativas en cloud.
El middleware acelera el desarrollo de aplicaciones distribuidas al simplificar la conectividad entre aplicaciones, componentes de aplicaciones y orígenes de datos de fondo.
Las API REST proporcionan una forma flexible y ligera de integrar aplicaciones. Han surgido como el método más común para conectar componentes en arquitecturas de microservicios.
Aprenda cuándo utilizar las API, cuándo utilizar la mensajería o cuándo utilizar ambas.