Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 3645|Respuesta: 0

Explicación detallada de la arquitectura de mensajes AMQP de RabbitMQ

[Copiar enlace]
Publicado en 14/8/2022 23:32:43 | | | |
Introducción al protocolo AMQP

AMQP (Advanced Message Queuing Protocol) es un protocolo estándar de nivel de aplicación que proporciona servicios de mensajería unificada y es un estándar abierto para protocolos de nivel de aplicación diseñados para middleware orientado a mensajes. AMQP es un protocolo de red para pasar mensajes asíncronos entre procesos.

Los clientes y middleware de mensajes basados en este protocolo pueden entregar mensajes sin estar restringidos por diferentes productos cliente/middleware, diferentes lenguajes de desarrollo, etc.

Las principales características de AMQP son orientado a mensajes, en cola, enrutamiento (incluyendo peer-to-peer y publicación/suscripción), fiabilidad y seguridad. AMQP hace cumplir el comportamiento de los proveedores de mensajes y clientes, permitiendo una verdadera interoperabilidad entre diferentes proveedores.

Explicación detallada del protocolo AMQP
https://www.itsvse.com/thread-10347-1-1.html

Mensajes de enrutamiento

En la arquitectura AMQP, cualquier enrutamiento exitoso de mensajes consta de tres partes:

  • Intercambio: Donde los productores publican mensajes
  • Colas: donde los consumidores reciben mensajes
  • Vinculaciones: Cómo se enrutan los mensajes desde el switch a una cola específica


Intercambios y Vinculaciones

¿Cómo llega el mensaje a la cola? Siempre que quieras entregar un mensaje a un consumidor, primero debes enviarlo al intercambiador. Luego, basándose en ciertas reglas o claves de enrutamiento, RabbitMQ decidirá a qué cola debe entregar los mensajes.

Las reglas —o claves de enrutamiento— te permiten vincular una cola al intercambio. RabbitMQ intentará emparejar la clave de enrutamiento del mensaje con la clave utilizada en la asignación. El mensaje se entrega entonces a la cola según uno de los cuatro tipos de intercambio: fanout, topic, direct, header



Intercambio de Fanout

Este tipo de intercambio transmite todos los mensajes que recibe a todas las colas vinculadas a él. Cualquier clave de enrutamiento proporcionada con el mensaje publicado será ignorada.

Intercambio de temas

En este tipo de intercambio, los mensajes se envían a una cola basada en la clave de enrutamiento. Esto significa que los mensajes enviados al intercambio de temas deben tener una clave de enrutamiento específica, que debe ser una lista de palabras, separadas por puntos (por ejemplo, 'acs.deviceoperations.'). El límite de redacción es de 255 bytes.

La clave de enlace debe estar en el mismo formato que la clave de enrutamiento. Por lo tanto, los mensajes enviados con una clave de enrutamiento específica se entregarán a cada cola vinculada con una clave de enlace correspondiente.

Las claves de vinculación permiten las siguientes reglas de expresión:

*(asterisco) solo puede reemplazar una palabra
# (hash) puede reemplazar cero o más palabras
Cuando una cola está vinculada con una clave de vinculación "#" (hash), recibirá todos los mensajes independientemente de la clave de enrutamiento, igual que en un intercambio de fan-out Fanout.

Intercambio directo

Cuando se declara una cola, esta seráVincula automáticamente a un switch que use el nombre de la cola como clave de enrutamiento。 Si la clave de enrutamiento coincide, el mensaje se entrega a la cola correspondiente.

Intercambio de cabeceras

Los conmutadores de cabecera son algo similares a los conmutadores de tema, pero a diferencia de los conmutadores de tema, el enrutamiento se basa en claves de ruta, y los valores de enrutamiento de los conmutadores de cabecera se basan en los datos de cabecera del mensaje.
La clave de enrutamiento del cambio de tema es solo una cadena, mientras que el switch de cabecera puede ser un entero y un hash.

(Fin)





Anterior:Explicación detallada del protocolo AMQP
Próximo:[Gira]. Optimizaciones de rendimiento de la red - recorren rápidamente colecciones de listas
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com