Introducción a los Conceptos Básicos 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.