Protocolo AMQP y Rabbit q

AMQP (Protocolo avanzado de cola de mensajes) es un protocolo de capa de aplicación para middleware de mensajes. Se utiliza para desacoplar componentes para proporcionar servicios de mensajes unificados. La función principal es ordenar y enrutar mensajes (incluida la publicación punto a punto y por suscripción) para garantizar la confiabilidad y seguridad de los mensajes.

Los clientes que siguen el protocolo AMPQ pueden comunicarse entre sí a través de middleware de mensajes. De esta manera, el cliente se puede implementar en diferentes lenguajes de desarrollo sin una fuerte dependencia entre sí, lo que reduce la complejidad del cliente, mejora la eficiencia del desarrollo y también favorece el mantenimiento posterior.

El marco modelo de AMQP es el siguiente:

RabbitMQ es una implementación de código abierto del protocolo AMQP. El modelo arquitectónico también se puede representar mediante la siguiente figura:

Como se muestra arriba, modo simple, editor único, cola única, consumidor único.

Como se muestra arriba, modo de trabajo

Varios consumidores *** * * utilizan mensajes de una cola.

En este modo, RabbitMQ realizará automáticamente el equilibrio de carga y enviará un sondeo de mensajes a todos los consumidores, es decir, solo un consumidor puede obtener un mensaje.

Como se muestra arriba, modo publicación/suscripción publicación-suscripción (modo transmisión).

En comparación con los dos primeros modos, hay un intercambio más (tipo fanout). Los mensajes se envían primero al intercambio y luego el intercambio se envía individualmente a todas las colas correspondientes. Un consumidor se suscribe a su propia cola y consume mensajes en la cola a la que se suscribe.

A continuación se muestran ejemplos de escenarios de aplicación:

Por ejemplo, hay muchas formas de notificar a los usuarios después de realizar compras y pagos en línea con éxito, como push de aplicación, SMS, correo electrónico, etc. .

Una vez que llega el mensaje, se envía a tres colas (app push q, SMS q, email_q) por intercambio.

Después, el servicio de inserción de aplicaciones, el servicio de notificación por SMS y el servicio de notificación por correo electrónico obtienen mensajes de sus colas de suscripción para notificar al usuario sobre el pago exitoso.

Como se muestra arriba, el tipo de intercambio está configurado como directo.

En este punto, la clave de ejecución del mensaje coincide con la clave de enlace del intercambio. Si son iguales, serán enviados a la cola correspondiente. Si no coinciden con la clave vinculante, el mensaje se descartará.

En la siguiente figura se muestran ejemplos de escenarios de aplicación:

Por ejemplo, hay muchos tipos de registros generados por el servicio, como error, información, debuf, etc. , y nuestro requisito es simplemente escribir registros de tipo de error en el disco, por lo que podemos usar el enrutamiento para enrutar el registro de errores a la cola de errores, y luego el servicio de escritura en disco correspondiente obtiene el mensaje y lo escribe en el disco.

Como se muestra arriba, el tipo de comunicación es tema. En comparación con el cuarto modo, la similitud es que coinciden según la clave de ejecución, pero la diferencia es que el modo de tema admite coincidencias difusas.