WikiDer > RabbitMQ - Википедия
Эта статья может чрезмерно полагаться на источники слишком тесно связан с предметом, потенциально препятствуя публикации статьи проверяемый и нейтральный. (Май 2019) (Узнайте, как и когда удалить этот шаблон сообщения) |
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()
Смотрите также
Рекомендации
- ^ Какие протоколы поддерживает RabbitMQ?
- ^ «Запуск корпоративной системы обмена сообщениями RabbitMQ с открытым исходным кодом» (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.