Notas de estudio de RabbitMQ: conceptos básicos y protocolo AMQP

¿Qué es el protocolo avanzado de Message Queue Server de AMQP?

  • Nombre completo de AMQP: Protocolo de cola de mensajes avanzado (traducción: Protocolo de cola de mensajes avanzado);
  • Definición de AMQP:
  1. Es un protocolo binario con características modernas;
  2. Es un protocolo de cola de mensajes avanzado estándar de capa de aplicación que proporciona servicios de mensajería unificada;
  3. Es un estándar abierto de protocolo de capa de aplicación, diseñado para middleware orientado a mensajes;
  • Las principales características de AMQP son la orientación a mensajes, la cola, el enrutamiento (incluido el punto a punto y la publicación / suscripción), la confiabilidad y la seguridad.
  • Modelo de protocolo AMQP:
  1. El servidor de aplicaciones del productor = "lanza el mensaje al servidor (nodo rabbitmq). El host virtual del host virtual es en realidad un concepto de lógica de enrutamiento de nivel superior. Exchange también es el núcleo del protocolo AMQP de nivel superior; el productor lo hará El mensaje se entrega al conmutador Exchange del servidor. (La entrega del mensaje debe pasar por el nombre de usuario de la conexión del servicio, contraseña, dirección IP y luego a través del host virtual Host virtual, y finalmente entregado al Exchange específico).
  2. Servidor de aplicaciones de consumidor = "supervisar Message Queue (cola de mensajes); Vinculación => Exchange y Message Queue (MQ) tienen una relación vinculante, MQ es el portador de mensajes específicos;

El productor entrega el mensaje al intercambio. Un intercambio puede estar vinculado a varias colas de mensajes. El intercambio tiene una estrategia de enrutamiento que especifica dos atributos:
1. Qué intercambio enviar el mensaje;
2. El mensaje lleva la clave de enrutamiento, que es vinculado al intercambio y la cola Vinculación Defina la relación, enrute el mensaje a la cola especificada a través de la clave de enrutamiento y envíelo al consumidor; 

AMQP impone regulaciones obligatorias sobre el comportamiento de los proveedores de mensajes y los clientes, de modo que diferentes proveedores puedan realmente lograr la interoperabilidad.
JMS es un intento de estandarizar el middleware de mensajería temprana, solo está estandarizado a nivel de API y está lejos de crear capacidades de interoperabilidad.
A diferencia de JMS, AMQP es un protocolo a nivel de cable, que describe el formato de los datos transmitidos en la red, utilizando bytes como flujo. Por tanto, cualquier herramienta que cumpla con este formato de datos puede interoperar con otras herramientas compatibles para la creación e interpretación de mensajes.

Versión de la especificación AMQP:
0-8 se publica en junio de 2006
0-9 se publica en diciembre de 2006
0-9-1 se publica en noviembre de 2008
0-10 se publica en la segunda mitad de 2009
borrador 1.0 (documento o borrador)

 

¿Cuáles son las implementaciones del protocolo AMQP?

1) OpenAMQ 【http://freshmeat.sourceforge.net/projects/openamq

La implementación de código abierto de AMQP, escrita en lenguaje C, se ejecuta en Linux, AIX, Solaris, Windows y OpenVMS.

2) Apache Qpid 【https://qpid.apache.org/

El proyecto de código abierto de Apache es compatible con C ++, Ruby, Java, JMS, Python y .NET.

3) Redhat Enterprise MRG 【https://access.redhat.com/documentation/en-us/red_hat_enterprise_mrg/3/

Se implementó la última versión 0-10 de AMQP, lo que proporciona un rico conjunto de funciones, como administración completa, federación, clúster activo-activo, una consola web y muchas funciones de nivel empresarial. El cliente es compatible con C ++, Ruby, Java y JMS. ., Python y .NET.

4)RabbitMQhttps://www.rabbitmq.com/documentation.html

Una implementación de código abierto independiente, el servidor está escrito en lenguaje Erlang, admite múltiples clientes, como: Python, Ruby, .NET, Java, JMS, C, PHP, ActionScript, XMPP, STOMP, etc., y es compatible con AJAX.

Plataformas y sistemas compatibles / Plataformas y sistemas operativos

5) Infraestructura AMQP 【https://fedoraproject.org/wiki/Features/AMQP_Infrastructure

Bajo Linux, incluye Broker, herramientas de administración, Agente y cliente.

6) ØMQ 【https://zeromq.org/

Una plataforma de mensajería de alto rendimiento que se puede utilizar como un nodo Broker compatible con AMQP en una red de mensajería distribuida, vinculada a varios lenguajes, incluidos Python, C, C ++, Lisp, Ruby, etc.

7) Oficina 【)

Es un Broker que implementa el protocolo RestMS y el protocolo AMQP, y brinda la capacidad de acceder a la red AMQP a través de RESTful HTTP.

Según el protocolo AMQP, hay siete intermediarios de mensajes. La industria elige RabbitMQ. Las ventajas y desventajas de ellos no se repiten aquí. El enfoque de nuestra serie es RabbitMQ. Antes de comenzar la introducción, primero comprendamos el protocolo AMQP.

 

¿Cuál es el concepto central de AMQP?

  • Editor : El productor del mensaje, es decir, el programa que entrega el mensaje;
  • Conexión : conexión TCP entre el editor / consumidor y el corredor. La operación de desconexión solo se realizará en el lado del cliente y el corredor no se desconectará, a menos que haya una falla en la red o un problema con el servicio del corredor;
  • Servidor : también conocido como Broker, acepta conexiones de clientes e implementa servicios de entidad AMQP (aplicaciones que reciben y distribuyen mensajes, RabbitMQ Server es Message Broker);
  • Canal : Comunicación en red. Casi todas las operaciones se realizan en Canal. El canal es el canal de lectura y escritura de mensajes (flujo de mensajes, borrado de mensajes, adición de usuarios, etc.). El cliente puede establecer múltiples canales, y cada canal representa una sesión (Obtener la conexión y crear el canal); Si se establece una Conexión cada vez que se accede a RabbitMQ, el costo de establecer una Conexión TCP será enorme y la eficiencia será baja cuando la cantidad de mensajes sea grande. El canal es una conexión lógica establecida dentro de la conexión. Si la aplicación admite subprocesos múltiples, generalmente cada subproceso crea un canal separado para la comunicación. El método AMQP incluye la identificación del canal para ayudar al cliente y al intermediario de mensajes a identificar el canal, por lo que los canales son completamente aislado. de. El canal, como una conexión liviana, reduce en gran medida la sobrecarga del sistema operativo para establecer una conexión TCP;
  • Mensaje : El mensaje, los datos transmitidos entre el servidor y la aplicación, se compone de Propiedades y Cuerpo. Las propiedades pueden modificar el mensaje, como la prioridad del mensaje, la entrega retrasada y otras características avanzadas, y el cuerpo es el contenido del cuerpo del mensaje;
  • Intercambio : Intercambia, recibe el mensaje y el mensaje llega a la primera parada del corredor. De acuerdo con las reglas de distribución, coincide con la clave de enrutamiento en la tabla de consulta y reenvía el mensaje a la cola enlazada (Cola); el utilizado comúnmente los tipos son: directo (punto a punto), tema (publicación-suscripción) y fanout (multidifusión);
  • Enlace : Enlace, una conexión virtual entre Exchange y Queue. El enlace puede contener una clave de enrutamiento. La información de enlace se almacena en la tabla de consultas a cambio de la base de la distribución del mensaje. La función es vincular Exchange y Queue de acuerdo con las reglas de enrutamiento. Configúrelo hasta
  • Clave de enrutamiento : una regla de enrutamiento que la máquina virtual puede usar para determinar cómo enrutar un mensaje específico;
  • Cola : El portador del mensaje, también conocido como Message Queue (cola de mensajes), el mensaje finalmente se envía aquí para esperar a que el consumidor (consumidor) se lo lleve. Un mensaje se puede copiar en una o más colas al mismo tiempo;
  • Consumidor : consumidor de mensajes, es decir, el programa que recibe el mensaje;

 

[Artículo de referencia]

Supongo que te gusta

Origin blog.csdn.net/ChaITSimpleLove/article/details/109062216
Recomendado
Clasificación