Установка и управление Apache Qpid
Cloud Server, Linux, VPS | Комментировать запись
На сегодняшний день существует множество решений для обмена сообщениями между приложениями и процессами. Все они имеют свои плюсы и минусы, поэтому лучшее, что можно сделать в такой ситуации – это оценить требования своей системы и выбрать программу согласно этим требованиям.
Apache Qpid – это одна из открытых систем обмена сообщениями, работающих по протоколу AMQP (Advanced Message Queuing Protocol), позволяющая выполнять обмен сообщениями между различными элементами системы.
Обмен сообщениями, брокеры сообщений и очереди сообщений
Обмен сообщениями – это способ обмена определенными данными между процессами, приложениями и серверами (как виртуальными, так и физическими). Такие сообщения, необходимые для решения некоторых технических потребностей, могут состоять из любых данных (начиная простыми текстовыми сообщениями и заканчивая двоичными данными). Для этого необходим интерфейс, управляемый сторонней программой (middleware, также промежуточное или межплатформенное ПО) – это и есть брокеры сообщений (Message Brokers).
Брокеры сообщений – это, как правило, программа-посредник, которая переводит язык системы с одного глобального языка на другой посредством телекоммуникационной среды. Брокеры справляются с приемом, созданием очереди и передачей сообщений гораздо лучше и быстрее, чем любые непрофильные аналоги и простые обходные варианты (как базы данных, демон cron и т.п.). для работы брокеры сообщений используют буферы, в которых они могут сохранять сообщения, создавая очередь сообщений, которая будет обрабатываться автоматически или путем запроса.
Зачем нужны брокеры сообщений?
Брокеры сообщений работают как посредники для различных сервисов (например, для веб-приложения). Они могут значительно сократить нагрузку и сроки доставки сообщений, поскольку задачи, обработка которых обычно занимает совсем немного времени, передаются сторонней программе, единственная работа которой заключается в выполнении этих задач (то есть, рабочих процессов). Они также полезны, когда необходимо гарантировать сохраняемость передачи информации с одного места на другое.
Когда нужны брокеры сообщений?
В целом, основная функциональность брокеров охватывает еще много областей, включая, но не ограничиваясь:
- Передача сообщения нескольким адресатам для обработки.
- Отключенные пользователи не потеряют данные, поскольку могут получить их позже в полном объеме.
- Внедрение асинхронного режима работы с серверными системами.
- Упорядочение и определение приоритетов задач.
- Балансировка нагрузки между рабочими процессами.
- Более высокая надежность и время безотказной работы приложения.
- И многое другое.
Что такое Apache Qpid?
Компания Apache Software Foundation разработала несколько программных решений для обмена сообщениями, и одно из них – Apache Qpid, реализация протокола AMQP в Apache. В отличие от некоторых более простых приложений, которые помогают разработчикам создавать свои собственные решения, Qpid, как и RabbitMQ, предоставляет удобный набор инструментов для создания очередей сообщений, защиты и управления транзакциями, кластеризации, сохраняемости процессов при помощи дополнительного слоя и многого другого. Его API по умолчанию поддерживает несколько языков программирования; кроме того, Qpid поставляется с брокерами C ++ (для Perl, Python, Ruby, .NET и т.п.) и Java (JMS API). Пожалуй, Qpid и RabbitMQ являются самыми популярными программами обмена сообщениями.
Особенности Apache Qpid
Полноценные брокеры сообщений имеют только небольшие отличия. Ниже приведен список особенностей и преимуществ Apache Qpid:
- Обнаружение и автоматическое исправление неполадок клиента путем подключения к другому брокеру.
- Простота кластеризации путем репликации очереди сообщений.
- Стандартная обработка ошибок в кластерах.
- Сохраняемость при помощи подключаемой архитектуры для обеспечения высокой доступности.
Что такое AMQP?
AMQP (или Advanced Message Queuing Protocol) – это широко распространенный открытый стандарт для обмена сообщениями. Как протокол и стандарт, AMQP создает общую основу для взаимодействия различных приложений и промежуточных брокеров сообщений.
Установка Apache Qpid
Установка Apache Qpid подразумевает установку двух наборов инструментов:
- реализации Qpid Broker в зависимости от языка программирования (например, брокер C ++ для Python, Java Broker для Java);
- и клиентских библиотек Qpid (например, Qpid Python).
Примечание: установка и все другие действия, описанные в данном руководстве, будут выполняться на новом сервере. Чтобы не нарушить взаимодействие сервера с клиентами и не испортить настройки, рекомендуется для начала выполнить это руководство на новом сервере.
Установка Apache Qpid на CentOS 6 / RHEL
Для начала обновите систему:
yum -y update
Затем, чтобы установить сервер Qpid C++ и остальные инструменты (вместе с привязками для Python), запустите:
yum install -y qpid-cpp-server qpid-tools
При необходимости можно установить привязки Qpid для других языков программирования и фреймворков, например, для Ruby:
yum install -y ruby-qpid
Установка Qpid на Ubuntu 13 / Debian 7
Процесс загрузки и установки Apache Qpid в Ubuntu и Debian аналогичен установке в CentOS.
Для начала нужно обновить стандартный набор приложений системы:
apt-get update
apt-get -y upgrade
Затем запустите следующую команду, чтобы установить Qpid C++ и другие инструменты:
apt-get install -y qpidd qpid-tools
apt-get install -y libqpidmessaging2-dev python-qpid ruby-qpid
Примечание: во время установки будет предложено установить пароль для администратора демона Qpid.
Управление Apache Qpid
Для пользователей CentOS / RHEL
Чтобы запустить, остановить, перезапустить и проверить статус приложения, используйте следующие команды (соответственно):
# To start the service:
/sbin/service qpidd start
# To stop the service:
/sbin/service qpidd stop
# To restart the service:
/sbin/service qpidd restart
# To check the status:
/sbin/service qpidd status
# To force reload:
/sbin/service qpidd force-reload
Для пользователей Ubuntu / Debian
Чтобы запустить, остановить, перезапустить и проверить статус приложения в системах Ubuntu и Debian, используйте следующие команды (соответственно):
# To start the service:
service qpidd start
# To stop the service:
service qpidd stop
# To restart the service:
service qpidd restart
# To check the status:
service qpidd status
# To force reload:
service qpidd force-reload
Это все, что нужно знать для управления брокерами сообщений Apache Qpid.
Чтобы получить больше информации о работе Apache Qpid, читайте документацию:
- C++
- Java
Работа с Apache Qpid
Установив Apache Qpid и все необходимые привязки, рассмотрим простой пример, чтобы разобраться в основах работы Qpid.
Создайте образец файла hello_world.py при помощи nano:
nano hello_world.py
Внесите в него такой модуль:
# Import the modules we need
from qpid.messaging import *
broker = "localhost:5672"
address = "amq.topic"
connection = Connection(broker)
try:
connection.open()
# Define the session
session = connection.session()
# Define a sender *and* a receiver
sender = session.sender(address)
receiver = session.receiver(address)
# Send a simple "Hello world!" message to the queue
sender.send(Message("Hello world!"));
# Fetch the next message in the queue
message = receiver.fetch()
# Output the message
print message.content
# Check with the server
session.acknowledge()
except MessagingError, err:
print err
finally:
connection.close()
Нажмите CTRL+X, чтобы сохранить файл, и Y для подтверждения.
Запуская вышеприведенный скрипт, вы должны увидеть сообщение Hello world в качестве вывода.
python hello_world.py
# Hello world!
Если же этого не случилось или возникли какие-то проблемы, убедитесь, что qpid запущен (используйте команды, приведенные в предыдущем разделе).
Tags: AMQP, Apache, Apache Qpid, CentOS, CentOS 6, Cloud Server, Debian, Debian 7, Linux, RHEL, Ubuntu, Ubuntu 13, VPS