Introducción a los Conceptos Básicos de RabbitMQ

Diagrama de Conceptos de RabbitMQ

Diagrama de Conceptos de RabbitMQ

Explicación de Conceptos

Mensaje

Un mensaje consta de un encabezado de mensaje (es decir, información de configuración adicional) y un cuerpo de mensaje (es decir, el contenido del mensaje).

Publicador

El productor del mensaje, que es una aplicación cliente que publica mensajes a un exchange.

Exchange

Un exchange se utiliza para recibir mensajes enviados por los productores y enrutar estos mensajes a colas en el servidor.

Hay cuatro tipos de exchanges:

  • Tipo directo: Compara la clave de enrutamiento del mensaje con las claves de enrutamiento asociadas con todas las uniones del exchange. Si coinciden, el mensaje se envía a la cola correspondiente de esa unión.

  • Tipo de tema: Compara la clave de enrutamiento del mensaje con las claves de enrutamiento asociadas con todas las uniones del exchange. Si hay coincidencia, el mensaje se envía a la cola correspondiente de esa unión.

  • Tipo fanout: Envía directamente mensajes a las colas correspondientes de todas las uniones, ignorando la clave de enrutamiento durante el enrutamiento.

  • Tipo de encabezados: Coincide con los encabezados en el mensaje con los parámetros asociados con todas las uniones del exchange. Si hay coincidencia, el mensaje se envía a la cola correspondiente de esa unión (menos comúnmente utilizado, similar al tipo directo).

Nota: Se proporcionarán explicaciones detalladas de los tipos de exchanges en las siguientes secciones sobre modos de trabajo. Esto es solo una visión general.

Unión

La relación utilizada para establecer una conexión entre las colas de mensajes y los exchanges.

Cola

Una cola de mensajes utilizada para almacenar mensajes hasta que sean entregados a los consumidores. Sirve como contenedor de mensajes y como punto final para los mensajes. Un mensaje puede ser entregado a una o más colas. Los mensajes permanecen en la cola, esperando a que los consumidores se conecten y los recuperen.

Conexión

Una conexión de red, como una conexión TCP.

Canal

Un canal es una conexión virtual establecida dentro de una conexión TCP real. Todos los comandos AMQP se envían a través de canales, ya sea para publicar mensajes, suscribirse a colas o recibir mensajes. Este diseño introduce el concepto de canales para reutilizar una sola conexión TCP, ya que establecer y terminar conexiones TCP es costoso para el sistema operativo.

Consumidor

El consumidor de mensajes, que representa una aplicación cliente que recupera mensajes de las colas de mensajes.

Vhost

Un host virtual representa un conjunto de exchanges, colas de mensajes y objetos relacionados. Es un dominio de servidor independiente que comparte el mismo entorno de autenticación e identificación. Cada vhost es básicamente una mini versión de un servidor RabbitMQ, con sus propias colas, exchanges, uniones y mecanismos de permisos.

Los vhosts son un concepto fundamental en AMQP y deben ser especificados al establecer una conexión. El vhost predeterminado para RabbitMQ es /.

Nota: El host virtual es una forma de estrategia de aislamiento de recursos que permite la partición de múltiples áreas aisladas dentro del mismo servidor RabbitMQ.

Broker

Representa la entidad física del servidor de colas de mensajes.