Apache ActiveMQ - это брокер сообщений с открытым исходным кодом, написанный на Java. Он поддерживает несколько кросс-языковых клиентов и протоколов.
Apache ActiveMQ
Брокер сообщений Apache ActiveMQ - это быстрая, надежная, масштабируемая и полностью интегрированная платформа обмена сообщениями с открытым исходным кодом для обработки большого количества сообщений (вход) или большого количества потребителей (отправка). В качестве формата хранения данных он использует память; при необходимости его можно настроить на постоянное хранение данных на диске. Первоначальное время запуска может быть медленным из-за того, что ActiveMQ загружает всю историческую информацию в память. Однако после первого запуска, который может занять до нескольких минут в зависимости от того, сколько истории вы сохранили в очередях и других параметров конфигурации, производительность начинает хорошо масштабироваться вплоть до момента, когда мы рассмотрим другие факторы, такие как системные ресурсы.
Основываясь на своем происхождении как опыта перехода от внутреннего решения для обмена сообщениями к коммерческому продукту, ActiveMQ можно считать одним из тех продуктов, которые постоянно развиваются и улучшаются, предлагая чрезвычайно высокое качество и надежную стабильность.
ActiveMQ предоставляет как простой встроенный брокер, так и полностью развернутое, высокодоступное корпоративное решение. Его наиболее важные особенности и достоинства - высокая доступность и отказоустойчивость (система с одним брокером может выдержать до 99,999% потерь сообщений), поддержка многих способов подключения клиентов (включая веб-консоли, инструменты командной строки и библиотеки, клиентские библиотеки JMS и т.д.), кластеризация через физические границы, балансировка нагрузки с помощью нескольких внутренних очередей на тему, гибкая конфигурация, такая как постоянные или непостоянные сообщения в зависимости от необходимости, сохранение данных в файлах или базе данных, реализация безопасности на основе модели аутентификации JAAS, которая также поддерживает реализацию LDAP.
ActiveMQ действительно является предпочтительным решением для обмена сообщениями для Java-разработчиков, архитекторов инфраструктуры и системных интеграторов. Его можно использовать как в небольших развертываниях (в этом случае вы, вероятно, будете использовать встроенный брокер), так и в больших корпоративных решениях (которые требуют кластеризации и отказоустойчивости).
В зависимости от ваших потребностей, ActiveMQ может быть легко масштабирован до реальных сценариев высокой доступности с полной балансировкой нагрузки на все брокеры, включая динамическое добавление новых узлов, когда существующие выходят из строя; stateful failover с автоматической повторной синхронизацией и потенциальной потерей данных (что всегда возможно), полностью поддерживаемый самим ActiveMQ: просто еще два узла, которые должны быть настроены в кластер для высокой доступности.
Apache ActiveMQ является кроссплатформенным и работает на виртуальной машине Java (JVM). Вы можете использовать ActiveMQ в Linux, Windows или OS X.
В этом руководстве мы проведем вас через базовую установку и настройку Apache ActiveMQ в Ubuntu, а также выполним базовую конфигурацию и проверочный тест.
Давайте начнем!
Необходимые условия
Для работы с нашим руководством вам понадобятся:
- Коробка Ubuntu Linux для запуска ActiveMQ. Это может быть физический сервер или виртуальная машина; главное, чтобы она могла запускать JVM и имела не менее 2 ГБ оперативной памяти и 20 ГБ дискового пространства. В зависимости от ваших потребностей, таких как запуск других служб, например, эталонных ActiveMQ, серверов баз данных или инструментов протоколирования, вы должны выделить больше.
- Root-доступ к запущенной системе Ubuntu.
Обновление системы
Важно убедиться, что система обновлена, прежде чем устанавливать какие-либо пакеты. Выполните следующую команду для обновления системы.
1 | sudo apt update && sudo apt upgrade -y |
Вы также можете установить некоторые дополнительные инструменты, которые понадобятся вам в этом учебнике, с помощью следующих команд.
1 | sudo apt install wget curl -y |
Установка Java
Apache ActiveMQ написан на языке Java и поэтому требует установки на машину среды выполнения Java (JRE). Вы можете установить ее с помощью следующей команды.
1 | sudo apt install openjdk-11-jre -y |
Когда установка завершится, запустите команду java с флагом -version, чтобы проверить, работает ли она правильно.
1 | java -version |
Вывод должен быть похож на следующий.
Установка Apache ActiveMQ
Теперь, когда у нас есть запущенная система и среда JRE, мы можем приступить к загрузке и установке Apache ActiveMQ.
Сначала вам нужно загрузить последнюю версию с официального сайта ActiveMQ.
Нам нужен tarball с меткой apache-activemq-5.17.3-bin.tar.gz - последняя версия на момент написания этой статьи.
Запустите команду wget, чтобы загрузить его.
1 | wget http://archive.apache.org/dist/activemq/5.17.3/apache-activemq-5.17.3-bin.tar.gz |
Поскольку вы загружаете архив, распакуйте файлы с помощью следующей команды. В результате содержимое будет извлечено в каталог под названием "apache-activemq-", и именно его мы будем устанавливать в нашу систему ActiveMQ.
1 | sudo tar -xvzf apache-activemq-5.17.3-bin.tar.gz |
Далее создайте новый каталог с именем /opt/activemq и переместите в него все файлы из apache-activemq, выполнив следующую команду
1 | sudo mkdir -p /opt/activemq && sudo mv apache-activemq-5.17.3/* /opt/activemq |
После этого создайте выделенные учетные записи пользователей и групп для запуска ActiveMQ. Мы рекомендуем создать выделенного пользователя для этой цели, но вы можете внести любые изменения в систему, которые сочтете необходимыми.
Создайте необходимые учетные записи групп и пользователей с помощью следующих команд.
1 2 | sudo addgroup --quiet --system activemq sudo adduser --quiet --system --ingroup activemq --no-create-home --disabled-password activemq |
Вам может понадобиться использовать sudo chown -R <user>:<group> /opt/activemq, если вы не являетесь пользователем root и не имеете прав на запись в каталог /opt/. Это изменит владельца и группу всех файлов в этом каталоге на ваше имя пользователя и вашу основную группу соответственно.
1 | sudo chown -R activemq:activemq /opt/activemq |
Далее вам нужно будет создать файл блока служб Apache ActiveMQ Systemd, выполнив следующую команду. Это позволит легко запускать, останавливать и перезапускать службу без необходимости каждый раз заходить в каталог вручную.
1 | sudo nano /etc/systemd/system/activemq.service |
Nano откроет окно редактора в вашей терминальной сессии с пустым содержимым файла для редактирования. Введите следующую конфигурацию в nano. Замените activemq на ваше имя пользователя при установке свойства JAVA_HOME.
1 2 3 4 5 6 7 8 9 10 11 12 13 | [Unit] Description=Apache ActiveMQ After=network.target [Service] Type=forking User=activemq Group=activemq ExecStart=/opt/activemq/bin/activemq start ExecStop=/opt/activemq/bin/activemq stop [Install] WantedBy=multi-user.target |
После этого нажмите CTRL+X, Y и Enter, чтобы сохранить файл.
Затем перезагрузите системный демон и запустите службу, выполнив следующую команду.
1 | sudo systemctl daemon-reload && sudo systemctl start activemq |
1 | sudo systemctl enable activemq |
Вы можете проверить, работает ли служба должным образом, используя эту команду для проверки ее состояния.
1 | sudo systemctl status activemq |
Если служба работает правильно, на выходе должно получиться что-то похожее на следующее.
Удаленный доступ к консоли
Открываем на редактирование файл
1 | sudo nano /opt/activemq/conf/jetty.xml |
находим параметр org.apache.activemq.web.WebConsolePort
Свойство "host" меняем значение 127.0.0.1 на 0.0.0.0
После этого нажмите CTRL+X, Y и Enter, чтобы сохранить файл.
и перезапускаем службу
1 | sudo systemctl restart activemq |
Доступ к веб-интерфейсу Apache ActiveMQ
Теперь, когда служба запущена, мы можем получить к ней удобный доступ с помощью веб-браузера. Откройте ваш любимый браузер и перейдите по адресу http://server_ip:8161/admin.
Где server_ip - это фактический IP-адрес вашего сервера. По умолчанию ActiveMQ устанавливает веб-интерфейс на порт 8161, а /admin предназначен для доступа к консоли управления.
Вы будете направлены на запрос пароля, который попросит вас ввести имя пользователя и пароль.
Введите имя пользователя и пароль по умолчанию "admin" для обоих полей и нажмите на кнопку Войти. После входа в систему вы попадете на консоль управления Apache ActiveMQ, как показано ниже.
Вот и все! Теперь мы успешно установили Apache ActiveMQ на наш сервер Ubuntu с демоном, веб-интерфейсом и службой Systemd.
Заключение
Ну, вот и все по этому руководству. Мы успешно установили Apache ActiveMQ на наш сервер Ubuntu.
Теперь вы можете использовать Apache ActiveMQ для создания легковесной корпоративной системы обмена для доставки большого количества сообщений.