RabbitMQ es un software de intermediación de mensajes de código abierto (a veces llamado middleware orientado a mensajes ) que originalmente implementó el Protocolo de cola de mensajes avanzado (AMQP) y desde entonces se ha ampliado con una arquitectura de complemento para admitir el Protocolo de mensajería orientada a texto en tiempo real (STOMP), el Transporte de telemetría MQ (MQTT) y otros protocolos. [1]
El servidor RabbitMQ está escrito en Erlang y se basa en el marco de trabajo Open Telecom Platform para la agrupación en clústeres y la conmutación por error. Las bibliotecas de cliente para interactuar con el agente están disponibles para todos los lenguajes de programación principales. El código fuente se publica bajo la licencia pública de Mozilla .
Desde noviembre de 2020, hay ofertas comerciales disponibles de RabbitMQ para soporte y funciones empresariales: "VMware RabbitMQ OVA", "VMware RabbitMQ" y "VMware RabbitMQ for Kubernetes" (diferentes niveles de funciones) [2] RabbitMQ de código abierto también está empaquetado por Bitnami [3] y comercialmente para Tanzu Application Service de VMware.
Historia
Originalmente desarrollado por Rabbit Technologies Ltd., que comenzó como una empresa conjunta entre LShift y CohesiveFT en 2007, [4] RabbitMQ fue adquirido en abril de 2010 por SpringSource , una división de VMware . [5] El proyecto pasó a formar parte de Pivotal Software en mayo de 2013. [6] Que luego fue adquirido nuevamente por VMWare en diciembre de 2019. [7]
El proyecto consiste en:
- El servidor de intercambio RabbitMQ
- Pasarelas para protocolos AMQP , HTTP , STOMP y MQTT
- Bibliotecas de cliente AMQP para Java , .NET Framework y Erlang. (Existen clientes AMQP para otros lenguajes disponibles de otros proveedores).
- Una plataforma de complementos para extensibilidad, con una colección predefinida de complementos compatibles, que incluye:
- Un complemento "Shovel" que se encarga de mover o copiar (replicar) mensajes de un broker a otro.
- Un complemento de "Federación" que permite compartir mensajes de manera eficiente entre corredores (a nivel de intercambio).
- Un complemento de "Gestión" que permite la supervisión y el control de corredores y grupos de corredores.
Ejemplos
Esta sección proporciona programas de muestra escritos en Python (usando el paquete pika ) para enviar y recibir mensajes usando una cola.
Envío
El siguiente fragmento de código establece una conexión, se asegura de que la cola de destinatarios exista, luego envía un mensaje y finalmente cierra la conexión.
#!/usr/bin/env python3
importa pika
conexión = pika . BlockingConnection ( pika . ConnectionParameters ( host = "localhost" ))
canal = conexión . canal ()
canal . queue_declare ( cola = "hola" )
canal . basic_publish ( exchange = "" , route_key = "hola" , cuerpo = "¡Hola mundo!" )
print ( "[x] Se envió '¡Hola mundo!'" )
conexión . close ()
Recepción
De manera similar, el siguiente programa recibe mensajes de la cola y los imprime en la pantalla: (Nota: este ejemplo no confirma la recepción del mensaje).
#!/usr/bin/env python3
importa pika
def callback ( ch , método , propiedades , cuerpo ):
print ( " [x] Recibido %r " % cuerpo )
connection = pika . BlockingConnection ( pika . ConnectionParameters ( host = "localhost" ))
channel = connection . channel ()
channel . queue_declare ( queue = "hello" )
print ( " [*] Esperando mensajes. Para salir, presione Ctrl+C" )
channel . basic_consume ( queue = "hello" , on_message_callback = callback )
channel . start_ducing ()
Calendario de fin de soporte[8]
Véase también
Referencias
- ^¿ Qué protocolos admite RabbitMQ?
- ^ "VMware RabbitMQ" . Consultado el 5 de mayo de 2023 .
- ^ "RabbitMQ". bitnami.com . Consultado el 8 de mayo de 2023 .
- ^ "Lanzamiento de RabbitMQ Open Source Enterprise Messaging" (PDF) . Nota de prensa . 8 de febrero de 2007 . Consultado el 23 de octubre de 2013 .
- ^ "Rabbit Technologies anuncia la adquisición por parte de SpringSource". Nota de prensa . 13 de abril de 2010. Archivado desde el original el 18 de abril de 2010 . Consultado el 3 de octubre de 2013 .
- ^ "Orgullosamente parte de Pivotal". Nota de prensa . 14 de mayo de 2010. Archivado desde el original el 2 de junio de 2013 . Consultado el 3 de octubre de 2013 .
- ^ "VMware completa la adquisición de Pivotal". VMware News and Stories . Consultado el 6 de abril de 2023 .
- ^ "Información de lanzamiento de RabbitMQ" . Consultado el 10 de junio de 2023 .
Lectura adicional
- Joern Barthel (13 de septiembre de 2009). "Introducción a AMQP y RabbitMQ". InfoQ.
- Peter Cooper (9 de abril de 2009). "RabbitMQ: una opción de cola rápida y confiable para los usuarios de Ruby". RubyInside.
- RabbitMQ: un agente de mensajería de código abierto que simplemente funciona. Google Tech Talks. 25 de septiembre de 2008.
Enlaces externos
- Sitio web oficial