RabbitMQ: 1 protocolo AMQP de middleware de cola de mensajes y función principal

descripción general

Ya sea que se trate de un microservicio o de una arquitectura de sistema distribuido, el middleware de cola de mensajes es un vínculo indispensable e importante. El middleware de cola de mensajes principal incluye RabbitMQ, RocketMQ, etc. A partir de este artículo, presentaremos los mensajes representados por RabbitMQ en detalle. .

Protocolo AMQP

AMQP.png

  • El protocolo AMQP es un protocolo estándar de capa de aplicación que proporciona servicios de mensajería unificados. El cliente y el middleware de mensajes basados ​​en este protocolo pueden transmitir mensajes, y no está limitado por diferentes productos de cliente/middleware y diferentes lenguajes de desarrollo.
  • El protocolo AMQP es un protocolo binario que proporciona una interacción asíncrona, segura y eficiente entre las aplicaciones cliente y el middleware de mensajes.
  • AMQP, como un servicio de nivel medio, separa la producción y el consumo de mensajes. Cuando el consumidor genera una excepción, no afecta el consumo del mensaje por parte del consumidor. Cuando el consumidor es anormal, el mensaje producido por el productor puede almacenarse en el La memoria del servicio o el disco no afectará la tasa de consumo. Al mismo tiempo, el mensaje también se puede entregar al consumidor especificado para el consumo según las reglas de enrutamiento.

Papel importante del protocolo AMQP

1. Productores y Consumidores

  • El productor es el sujeto de la producción de mensajes, y el consumidor es el sujeto de los mensajes de consumo.
  • Integración de datos y desacoplamiento de sistemas, procesamiento asincrónico y basado en eventos, Xuefeng de tráfico, consistencia eventual de mensajes de transacción y transacciones distribuidas
  • El productor produce un mensaje y lo envía al intermediario de mensajes, y el intermediario de mensajes pasa el mensaje al consumidor de acuerdo con las reglas de entrega.

2. Cambiar

  • Un conmutador es como un enrutador para un intermediario de mensajes.Después de recibir un mensaje, lo enruta a una cola o a cero de acuerdo con ciertas reglas (claves de enrutamiento).El conmutador tiene múltiples modos de enrutamiento.
  • Según el productor de mensajes y las reglas de enrutamiento, el mensaje se puede entregar a la cola de mensajes especificada. El conmutador recibe el mensaje entregado por el productor y, según la regla de enrutamiento y la relación de vinculación de la cola, coincide con el conmutador o la cola de entrega correspondiente para distribución. El conmutador no almacena el mensaje. Solo retuitea

Tipo de interruptor:

  • Conectado directamente al conmutador: entrega a la cola correspondiente de acuerdo con la coincidencia exacta de la clave de enrutamiento
  • Conmutador en forma de abanico: independientemente de la clave de enrutamiento, el mensaje se copia y se enruta a todas las colas vinculadas a él, lo que proporciona un efecto de transmisión.
  • Cambio de tema: entregar a la cola correspondiente de acuerdo con la clave de enrutamiento de acuerdo con la coincidencia de patrones
  • El interruptor también tiene sus propios atributos, puede definir su propio nombre, si es persistente o no, y otras opciones.

3. Cola

  • La cola es un lugar de almacenamiento temporal para mensajes. Si al menos un consumidor se suscribe a la cola, el mensaje se enviará a estos consumidores suscritos inmediatamente. Sin embargo, si el mensaje llega a una cola de suscripción no tripulada, el mensaje esperará en la cola. Los consumidores luego distribuyen.
  • Existe una relación vinculante entre Exchange y Message Queue. Después de que el mensaje llega a Exchange, el mensaje se puede entregar a Message Queue vinculado según la política de enrutamiento según la política de enrutamiento.
  • Las colas de mensajes almacenan mensajes en la memoria o el disco, y reenvían estos mensajes a uno o más consumidores en un orden determinado. Cada cola de mensajes está aislada de forma independiente y no se afecta entre sí.
  • Las colas de mensajes tienen diferentes atributos (privada, compartida, persistente, temporal, definida por el cliente o definida por el servidor, etc.), y el tipo correspondiente se puede seleccionar en función de las necesidades reales.

4. Mensaje

  • El mensaje es el portador de información y una entidad del protocolo AMQP El mensaje consta de dos partes
  • Carga útil: la información real, cualquier contenido que desee transmitir, esta parte del contenido es transparente para el intermediario de mensajes.
  • Metainformación: incluidos los atributos del mensaje, como la clave de enrutamiento, el tipo de contenido, la codificación y la persistencia, etc., que serán analizados por el agente de mensajes. El agente de mensajes entregará y almacenará el mensaje de acuerdo con los atributos del mensaje. Esta parte está relacionada por el agente de mensajes y a los consumidores no les importa.

5. Canal

  • El canal de red es un enlace ligero construido sobre el enlace de Conexión. Casi todas las operaciones se realizan en el Canal. El Canal es un canal para leer y escribir mensajes. El cliente puede establecer un enlace a cada Canal, y cada Canal representa una sesión. tarea.
  • Se puede crear cualquier número de canales en una conexión

Supongo que te gusta

Origin juejin.im/post/7229324815191687226
Recomendado
Clasificación