Эта статья может чрезмерно полагаться на источники, слишком тесно связанные с предметом , что потенциально может помешать проверке и нейтральности статьи . ( Май 2019 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) |
Разработчики) | Основное программное обеспечение |
---|---|
Стабильный выпуск | 3.8.11 / 22 января 2021 г . |
Репозиторий | github |
Написано в | Erlang |
Операционная система | Кроссплатформенность |
Тип | AMQP , промежуточное ПО, ориентированное на сообщения |
Лицензия | Общественная лицензия Mozilla |
Веб-сайт | www |
RabbitMQ - это программное обеспечение брокера сообщений с открытым исходным кодом (иногда называемое промежуточным программным обеспечением, ориентированным на сообщения ), которое первоначально реализовало протокол расширенной очереди сообщений (AMQP) и с тех пор было расширено архитектурой подключаемых модулей для поддержки потокового протокола обмена текстовыми сообщениями (STOMP). , MQ Telemetry Transport (MQTT) и другие протоколы. [1]
Программа сервера RabbitMQ написана на языке программирования Erlang и построена на платформе Open Telecom Platform для кластеризации и аварийного переключения. Клиентские библиотеки для взаимодействия с брокером доступны для всех основных языков программирования.
История [ править ]
Rabbit Technologies Ltd. изначально разработала RabbitMQ. Rabbit Technologies была основана в 2007 году как совместное предприятие LShift и CohesiveFT [2], а в апреле 2010 года была приобретена SpringSource , подразделением VMware . [3] Проект стал частью Pivotal Software в мае 2013 года. [4]
Исходный код выпущен под общественной лицензией Mozilla . Проект состоит из:
- Сам сервер обмена RabbitMQ
- Шлюзы для AMQP , HTTP , ТОПАЮТ и MQTT протоколов
- Клиентские библиотеки AMQP для Java , .NET Framework и Erlang . (Клиенты AMQP для других языков доступны у других поставщиков.)
- Платформа подключаемых модулей для пользовательских дополнений с предопределенным набором поддерживаемых подключаемых модулей, включая:
- Плагин «Лопата», который заботится о перемещении или копировании (репликации) сообщений от одного брокера к другому.
- Подключаемый модуль «Федерация», который обеспечивает эффективный обмен сообщениями между брокерами (на уровне обмена).
- Плагин «Управление», позволяющий отслеживать и контролировать брокеров и их кластеры.
Примеры [ править ]
В этом разделе приведены примеры программ, написанных на Python (с использованием пакета pika ) для отправки и получения сообщений с использованием очереди.
Отправка [ редактировать ]
Следующий фрагмент кода устанавливает соединение, проверяет, существует ли очередь получателя, затем отправляет сообщение и, наконец, закрывает соединение.
#! / usr / bin / env python3 import pikaподключение = pika . BlockingConnection ( pika . ConnectionParameters ( host = "localhost" )) канал = соединение . channel () канал . queue_declare ( queue = "hello" ) канал . basic_publish ( exchange = "" , routing_key = "hello" , body = "Hello World!" ) print ( "[x] Отправлено 'Hello World!'") соединение . закрыть ()
Получение [ править ]
Точно так же следующая программа получает сообщения из очереди и выводит их на экран: (Примечание: этот пример не подтверждает получение сообщения.)
#! / usr / bin / env python3 import pikaподключение = pika . BlockingConnection ( pika . ConnectionParameters ( host = "localhost" )) канал = соединение . channel () канал . queue_declare ( queue = "hello" ) print ( "[*] Ожидание сообщений. Для выхода нажмите Ctrl + C" ) обратный вызов def ( ch , метод , свойства , тело ): print ( "[x] Получено % r " % body )канал . basic_consume ( queue = "hello" , on_message_callback = callback ) канал . start_consuming ()
См. Также [ править ]
Ссылки [ править ]
- ^ Какие протоколы поддерживает RabbitMQ?
- ^ «Запуск RabbitMQ Open Source Enterprise Messaging» (PDF) . Пресс-релиз . 8 февраля 2007 . Проверено 23 октября 2013 года .
- ^ «Rabbit Technologies объявляет о приобретении SpringSource» . Пресс-релиз . 13 апреля 2010 года Архивировано из оригинала 18 апреля 2010 года . Проверено 3 октября 2013 года .
- ^ "Гордо часть Pivotal" . Пресс-релиз . 14 мая 2010 года в архив с оригинала на 2 июня 2013 года . Проверено 3 октября 2013 года .
Дальнейшее чтение [ править ]
- Джоерн Бартел (13 сентября 2009 г.). «Начало работы с AMQP и RabbitMQ» . InfoQ.
- Питер Купер (2009-04-09). «RabbitMQ - быстрый и надежный вариант организации очередей для рубистов» . RubyInside.
- RabbitMQ: брокер обмена сообщениями с открытым исходным кодом, который просто работает . Google Tech Talks. 2008-09-25.
Внешние ссылки [ править ]
- Официальный веб-сайт