Cola de mensajes

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 4 de abril de 2020; las comprobaciones requieren 2 ediciones .

Cola de mensajes (o buzón de correo ): en informática , un componente de  ingeniería de software utilizado para la comunicación entre procesos o entre subprocesos dentro de un solo proceso . Se utiliza una cola para intercambiar mensajes .

El paradigma de la cola de mensajes es similar al patrón de publicación-suscripción y, por lo general, forma parte de un sistema de middleware orientado a mensajes más grande . La mayoría de los sistemas de mensajería admiten colas de mensajes y modelos de publicación y suscripción en sus API .

Resumen

Las colas de mensajes proporcionan un protocolo de comunicación asíncrono , lo que significa que el remitente y el receptor de un mensaje no tienen que interactuar con la cola de mensajes al mismo tiempo. Los mensajes en cola se almacenan hasta que el destinatario los recibe.

Las colas de mensajes tienen límites implícitos o explícitos sobre la cantidad de datos que se pueden enviar en un solo mensaje y la cantidad de mensajes que pueden permanecer en la cola.

Muchas implementaciones de colas de mensajes funcionan internamente, ya sea dentro del sistema operativo o dentro de una aplicación . Tales colas existen solo para los propósitos de este sistema.

Otras implementaciones permiten que los mensajes se transmitan entre diferentes sistemas informáticos , conectando potencialmente múltiples aplicaciones y múltiples sistemas operativos. Estos sistemas de colas de mensajes generalmente brindan funcionalidad avanzada para la resiliencia , para garantizar que los mensajes no se "pierdan" si el sistema falla.

Aplicación

Para implementar una cola de mensajes, el administrador del sistema instala y configura el software de colas de mensajes (spooler o intermediario) y define una cola de mensajes con nombre. O están registrados en el servicio Message Queue Server.

Luego, la aplicación registra un procedimiento de programa que " escucha " los mensajes colocados en la cola .

La segunda aplicación y las subsiguientes pueden conectarse a la cola y enviarle un mensaje .

El software del administrador de colas almacena mensajes hasta que la aplicación receptora se conecta y luego llama al procedimiento del programa registrado. La aplicación receptora luego maneja el mensaje apropiadamente.

Hay muchas variaciones en la semántica exacta del paso de mensajes, que incluyen:

Todos estos factores pueden afectar significativamente la semántica de las transacciones, la confiabilidad y la eficiencia del sistema.

Normas y protocolos

Históricamente, las colas de mensajes han utilizado sus propios protocolos propietarios que han limitado la capacidad de diferentes sistemas operativos o lenguajes de programación para interoperar en un conjunto heterogéneo de entornos.

Han surgido tres estándares y se utilizan en implementaciones de código abierto de Message Queue Server :

  1. El protocolo de cola de mensajes avanzado (AMQP) es un protocolo de cola de mensajes rico en características
  2. STOMP (STOMP) - protocolo de mensaje de texto simple
  3. MQTT (anteriormente MQ Telemetry Transport) es un protocolo de cola de mensajes liviano, especialmente para dispositivos integrados.

Estos protocolos se encuentran en varias etapas de estandarización e implementación. Los dos primeros funcionan en la misma capa que HTTP , MQTT en la capa TCP/IP .

Síncrono o asíncrono

Muchos de los protocolos de comunicación ampliamente conocidos se utilizan de forma síncrona. El protocolo HTTP , utilizado en la World Wide Web y en los servicios web , ofrece un ejemplo ilustrativo en el que un usuario envía una solicitud a una página web y luego espera una respuesta.

Sin embargo, hay escenarios donde el comportamiento síncrono no es apropiado. Por ejemplo, AJAX ( JavaScript asíncrono y XML ) se puede usar para enviar mensajes de texto, JSON o XML de forma asíncrona para actualizar una parte de una página web con información más relevante .

Implementación en UNIX

UNIX tiene 2 implementaciones comunes de colas. Uno es parte de la API SYS V y el otro es parte de POSIX .

Véase también

Notas

Enlaces