Introducción básica a rabbitMQ (resumen de aprendizaje)

concepto basico

1. En la mayoría de las aplicaciones, el middleware del servicio de mensajes se puede utilizar para mejorar la comunicación asíncrona del sistema y ampliar las capacidades de desacoplamiento.

2. Dos conceptos importantes en el servicio de mensajes:

Intermediario de mensajes (intermediario de mensajes) y destino (destino) Cuando el remitente del mensaje envía un mensaje, el intermediario de mensajes se hará cargo de él, y el intermediario de mensajes se asegura de que el mensaje se entregue al destino designado.

3. La cola de mensajes tiene principalmente dos formas de destinos

1. Queue (cola): comunicación de mensajes punto a punto (point-to-point)

2. Tema: comunicación de mensajes de publicación/suscripción

4. Punto a punto:

  • El remitente del mensaje envía un mensaje, el agente de mensajes lo coloca en una cola, el receptor del mensaje obtiene el contenido del mensaje de la cola y el mensaje se elimina de la cola después de leerlo.
  • El mensaje tiene solo un emisor y un receptor, pero no significa que solo pueda haber un receptor

5. Publica y suscríbete:

  • El remitente (editor) envía un mensaje al tema, y ​​varios receptores (suscriptores) escuchan (suscriben) el tema, luego recibirán el mensaje al mismo tiempo cuando llegue el mensaje.

6. Servicio de mensajes JAVA JMS (Java Message Service):

  • Especificación basada en el intermediario de mensajes JVM. ActiveMQ y HornetMQ son implementaciones JMS

7. AMQP (Protocolo de cola de mensajes avanzado)

  • Protocolo de cola de mensajes avanzado, también una especificación de intermediario de mensajes, compatible con JMS
  • RabbitMQ es una implementación de AMQP

8. Soporte de resorte

  • spring-jms proporciona soporte para JMS
  • spring-rabbit proporciona soporte para AMQP
  • Se requiere una implementación de ConnectionFactory para conectarse al intermediario de mensajes
  • Proporcione JmsTemplate, RabbitTemplate para enviar mensajes
  • Las anotaciones @JmsListener (JMS), @RabbitListener (AMQP) escuchan los mensajes publicados por el intermediario de mensajes en el método
  • @EnableJms, @EnableRabbit habilitar soporte

9. Configuración automática de Spring Boot

  • JmsAutoConfiguración
  • RabbitAutoConfiguración

10. Productos MQ en el mercado

  • ActiveMQ, RabbitMQ, RocketMQ, Kafka

 

Introducción a RabbitMQ:

RabbitMQ es una implementación de código abierto de AMQP (Advanved Message Queue Protocol) desarrollada por erlang.

Idea principal

Mensaje

Mensaje, el mensaje es anónimo, consta del encabezado del mensaje y el cuerpo del mensaje. El cuerpo del mensaje es opaco, mientras que el encabezado del mensaje consta de una serie de atributos opcionales, que incluyen clave de enrutamiento (clave de enrutamiento), prioridad (prioridad relativa a otros mensajes), modo de entrega (que indica que el mensaje puede requerir almacenamiento persistente), etc.

Editor

Un productor de mensajes es también una aplicación cliente que publica mensajes en un intercambio.

Intercambio

Un intercambio que recibe mensajes de productores y los enruta a colas en el servidor.

Hay 4 tipos de Exchange: directo (predeterminado), abanico, tema y encabezados. Los diferentes tipos de Exchange tienen diferentes estrategias para reenviar mensajes.

Cola

Una cola de mensajes, utilizada para almacenar mensajes hasta que se envía a los consumidores. Es el contenedor del mensaje y el destino del mensaje. Un mensaje se puede poner en una o más colas. El mensaje siempre está en la cola, esperando que el consumidor se conecte a la cola para retirarlo.

Vinculante

Los enlaces se utilizan para asociaciones entre colas de mensajes e intercambios. Un enlace es una regla de enrutamiento que conecta un intercambio y una cola de mensajes en función de una clave de enrutamiento, por lo que un intercambio puede entenderse como una tabla de enrutamiento compuesta de enlaces.

El enlace de Exchange y Queue puede ser una relación de muchos a muchos.

Conexión

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

Canal (conexión larga)

Channel, un canal de flujo de datos bidireccional independiente en una conexión multiplexada. Un canal es una conexión virtual establecida en una conexión TCP real. Los comandos AMQP se envían a través del canal. Ya sea publicar un mensaje, suscribirse a una cola o recibir un mensaje, todas estas acciones se completan a través del canal. Debido a que es muy costoso para el sistema operativo establecer y destruir TCP, se introduce el concepto de canal para reutilizar una conexión TCP.

Consumidor

El consumidor del mensaje representa un programa de aplicación cliente que obtiene mensajes de la cola de mensajes.

Anfitrión virtual

Un host virtual, que representa una colección de intercambios, colas de mensajes y objetos relacionados. Los hosts virtuales son dominios separados de servidores que comparten el mismo entorno de autenticación y cifrado. Cada host virtual es esencialmente una versión mini del servidor RabbitMQ, con su propio mecanismo de cola, interruptor, enlace y permiso. El host virtual es la base del concepto AMQP y debe especificarse al conectarse. El host virtual predeterminado de RabbitMQ es /.

Corredor

Representa la entidad del servidor de cola de mensajes.

 

Supongo que te gusta

Origin blog.csdn.net/wzw_wwl/article/details/130987368
Recomendado
Clasificación