Este artículo puede basarse excesivamente en fuentes demasiado relacionadas con el tema , lo que podría impedir que el artículo sea verificable y neutral . ( Mayo de 2019 ) |
Desarrollador(es) | VMware |
---|---|
Versión estable | 4.0.0 / 18 de septiembre de 2024 ( 18/09/2024 ) |
Repositorio | github.com/rabbitmq |
Escrito en | Erlang |
Sistema operativo | Multiplataforma |
Tipo | AMQP , middleware orientado a mensajes |
Licencia | Licencia pública de Mozilla |
Sitio web | www.rabbitmq.com |
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.
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:
Esta sección proporciona programas de muestra escritos en Python (usando el paquete pika ) para enviar y recibir mensajes usando una cola.
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 pikaconexió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 ()
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 pikadef 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 ()
Liberar | Liberado | Apoyo comunitario | Soporte comercial ampliado | El último |
---|---|---|---|---|
3.13 | 22 de febrero de 2024 | Próximo lanzamiento | Finaliza el 31 de diciembre de 2027 | 3.13.6 (23 de julio de 2024) |
3.12 | 01 de junio de 2023 | Finaliza el 22 de febrero de 2024 | Finaliza el 30 de junio de 2025 | 3.12.14 (6 de mayo de 2024) |
3.11 | 26 de septiembre de 2022 | Finalizó el 2 de junio de 2023 | Finaliza el 30 de junio de 2024 | 3.11.28 (22 de diciembre de 2023) |
3.10 | 3 de mayo de 2022 | Finalizó el 31 de julio de 2023 | Finalizó el 31 de diciembre de 2023 | 3.10.25 (17 de julio de 2023) |
3.9 | 23 de julio de 2021 | Finalizó el 31 de enero de 2023 | Finalizó el 31 de julio de 2023 | 3.9.29 |
3.8 | 01 de octubre de 2019 | Finalizó el 31 de julio de 2022 | Finalizó el 31 de julio de 2022 | 3.8.35 |
3.7 | 28 de noviembre de 2017 | Finalizó el 30 de septiembre de 2020 | Finalizó el 30 de septiembre de 2020 | 3.7.28 |
3.6 | 22 de diciembre de 2015 | Finalizó el 31 de mayo de 2018 | Finalizó el 31 de mayo de 2018 | 3.6.16 |
3.5 | 11 de marzo de 2015 | Finalizó el 31 de octubre de 2016 | Finalizó el 31 de octubre de 2016 | 3.5.8 |
3.4 | 21 de octubre de 2014 | Finalizó el 31 de octubre de 2015 | Finalizó el 31 de octubre de 2015 | 3.4.4 |
3.3 | 02 de abril de 2014 | Finalizó el 31 de marzo de 2015 | Finalizó el 31 de marzo de 2015 | 3.3.5 |
3.2 | 23 de octubre de 2013 | Finalizó el 31 de octubre de 2014 | Finalizó el 31 de octubre de 2014 | 3.2.4 |
3.1 | 1 de mayo de 2013 | Finalizó el 30 de abril de 2014 | Finalizó el 30 de abril de 2014 | 3.1.5 |
3.0 | 19 de noviembre de 2012 | Finalizó el 30 de noviembre de 2013 | Finalizó el 30 de noviembre de 2013 | 3.0.4 |