Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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 ()

См. Также [ править ]

Ссылки [ править ]

  1. ^ Какие протоколы поддерживает RabbitMQ?
  2. ^ «Запуск RabbitMQ Open Source Enterprise Messaging» (PDF) . Пресс-релиз . 8 февраля 2007 . Проверено 23 октября 2013 года .
  3. ^ «Rabbit Technologies объявляет о приобретении SpringSource» . Пресс-релиз . 13 апреля 2010 года Архивировано из оригинала 18 апреля 2010 года . Проверено 3 октября 2013 года .
  4. ^ "Гордо часть Pivotal" . Пресс-релиз . 14 мая 2010 года в архив с оригинала на 2 июня 2013 года . Проверено 3 октября 2013 года .

Дальнейшее чтение [ править ]

  • Джоерн Бартел (13 сентября 2009 г.). «Начало работы с AMQP и RabbitMQ» . InfoQ.
  • Питер Купер (2009-04-09). «RabbitMQ - быстрый и надежный вариант организации очередей для рубистов» . RubyInside.
  • RabbitMQ: брокер обмена сообщениями с открытым исходным кодом, который просто работает . Google Tech Talks. 2008-09-25.

Внешние ссылки [ править ]

  • Официальный веб-сайт