RabbitMQ - RabbitMQ - Wikipedia

RabbitMQ это открытый исходный код брокер сообщений программное обеспечение (иногда называемое промежуточное ПО, ориентированное на сообщения ), который изначально реализовал Расширенный протокол очереди сообщений (AMQP) и с тех пор был расширен подключаемая архитектура поддерживать Протокол потоковой передачи текстовых сообщений (STOMP), MQ Telemetry Transport (MQTT) и другие протоколы.[1]

Программа сервера RabbitMQ написана на Язык программирования Erlang и построен на Открытая телекоммуникационная платформа фреймворк для кластеризации и аварийного переключения. Клиентские библиотеки для взаимодействия с брокером доступны для всех основных языков программирования.

История

Rabbit Technologies Ltd. изначально разработала RabbitMQ. Rabbit Technologies была основана как совместное предприятие LShift и CohesiveFT в 2007 году.[2] и был приобретен в апреле 2010 г. SpringSource, подразделение VMware.[3] Проект стал частью Основное программное обеспечение в мае 2013 г.[4]

Исходный код выпущен под Общественная лицензия Mozilla.Проект состоит из:

  • Сам сервер обмена RabbitMQ
  • Шлюзы для AMQP, HTTP, Торможение, и MQTT протоколы
  • AMQP клиентские библиотеки для Ява, .NET Framework, и Erlang. (Клиенты AMQP для других языков доступны у других поставщиков.)
  • Платформа подключаемых модулей для пользовательских дополнений с предопределенным набором поддерживаемых подключаемых модулей, включая:
    • Плагин «Лопата», который заботится о перемещении или копировании (репликации) сообщений от одного брокера к другому.
    • Подключаемый модуль «Федерация», который обеспечивает эффективный обмен сообщениями между брокерами (на уровне обмена).
    • Плагин «Управление», позволяющий отслеживать и контролировать брокеров и их кластеры.

Примеры

В этом разделе приведены примеры программ, написанных на Python (с использованием пищуха package) для отправки и получения сообщений с помощью очереди.

Отправка

Следующий фрагмент кода устанавливает соединение, проверяет, существует ли очередь получателя, затем отправляет сообщение и, наконец, закрывает соединение.

#! / usr / bin / env python3импорт пищухасвязь = пищуха.BlockingConnection(пищуха.Параметры подключения(хозяин="localhost"))канал = связь.канал()канал.queue_declare(очередь="Привет")канал.basic_publish(обмен="", routing_key="Привет", тело="Привет, мир!")Распечатать(«[x] Отправлено 'Hello World!'»)связь.Закрыть()

Получение

Точно так же следующая программа получает сообщения из очереди и выводит их на экран: (Примечание. В этом примере нет сознавать получение сообщения.)

#! / usr / bin / env python3импорт пищухасвязь = пищуха.BlockingConnection(пищуха.Параметры подключения(хозяин="localhost"))канал = связь.канал()канал.queue_declare(очередь="Привет")Распечатать("[*] Ожидание сообщений. Для выхода нажмите Ctrl + C")def Перезвоните(ch, метод, характеристики, тело):    Распечатать("[x] Получено " % тело)канал.basic_consume(очередь="Привет", on_message_callback=Перезвоните)канал.start_consuming()

Смотрите также

Рекомендации

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

дальнейшее чтение

внешняя ссылка