VMware Pivotal RabbitMQ

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 14:42, 18 июля 2016.
VMware Pivotal RabbitMQ
RabbitMQLogo.png
Разработчики: Pivotal Software
Постоянный выпуск: 3.6.1 / March 1, 2016
Операционная система: Cross-platform
Локализация: Erlang
Тип ПО: AMQP, message-oriented middleware
Лицензия: Mozilla Public License
Веб-сайт Official website

RabbitMQ – это открытое ПО сборщика/раздатчика сообщений (иногда называемое ориентированным на сообщение связующим/промежуточным ПО ) которое принадлежит расширенному протоколу сообщений массового обслуживания (Advanced Message Queuing Protocol (AMQP)). Сервер RabbitMQ написан на языке программирования Erlang и построен на фреймворке Open Telecom Platform для кластеризации и отказоустойчивости. Пользовательские библиотеки обеспечивающие GUI сборщика/раздатчика сообщений доступны на всех основных языках программирования.

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

Исходный код реализован с лицензией the Mozilla Public License. Проект состоит из:

  • Самого обменного сервера RabbitMQ
  • Шлюзов для HTTP, Streaming Text Oriented Messaging Protocol (STOMP), and MQTT протоколов
  • AMPQ клиентские библиотеки для Java, .NET Framework, и Erlang. (AMQP клиенты для других языков доступны от других поставщиков.)
  • Встроенная платформа для пользовательских дополнений с предопределенной коллекцией поддерживаемых дополнений, включая:
  • "Shovel" дополнение которое отвечает за перемещение или копирование(репликацию) сообщений из одного сборщика/раздатчика сообщений в другой.
  • "Federation" дополнение которое позволяет эффективно обмениваться сообщениями между сборщиками/раздатчиками сообщений(на обменном уровне)
  • "Management" дополнение которое позволяет следить и контролировать сборщики/раздатчики сообщений или кластеры сборщиков/раздатчиков сообщений.

Примеры

Эта часть приводит примеры программ написанных на языке Python для отправки и получения сообщений используя очередь.

Отправка

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

#!/usr/bin/env python
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')
channel.basic_publish(exchange='', routing_key='hello', body='Hello World!')
print(" [x] Sent 'Hello World!'")
connection.close()

Получение

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

#!/usr/bin/env python
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')
print(' [*] Waiting for messages. To exit press CTRL+C')
def callback(ch, method, properties, body):
    print(" [x] Received %r" % body)
channel.basic_consume(callback, queue='hello', no_ack=True)
channel.start_consuming()

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

  • Advanced Message Queuing Protocol (AMQP)
  • ZeroMQ
  • Enduro/X

Примечания

  1. "Launch of RabbitMQ Open Source Enterprise Messaging" (PDF). Press release. February 8, 2007. Retrieved October 23, 2013. 
  2. "Rabbit Technologies announce acquisition by SpringSource". Press release. April 13, 2010. Archived from the original on April 18, 2010. Retrieved October 3, 2013. 
  3. "Proudly part of Pivotal". Press release. May 14, 2010. Archived from the original on June 2, 2013. Retrieved October 3, 2013. 

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

  • Joern Barthel (2009-09-13). "Getting started with AMQP and RabbitMQ". InfoQ.
  • Peter Cooper (2009-04-09). "RabbitMQ - A Fast, Reliable Queuing Option for Rubyists". RubyInside.
  • RabbitMQ: An Open Source Messaging Broker That Just Works. Google Tech Talks. 2008-09-25.

Ссылки