Статьи

Запуск нескольких виртуальных машин JBoss A-MQ на одной машине

Так что в последнее время я не так часто веду блоггинг — просто очень занят. Но мое новогоднее решение состоит в том, чтобы немного больше публиковать в блогах информацию, с которой я часто сталкиваюсь, даже если это простые вещи, которые могут помочь некоторым людям.

Поэтому для этой записи я покажу быстрый способ запуска нескольких экземпляров JBoss A-MQ на одной машине. Причина, по которой возникает этот вопрос, заключается в том, что JBoss A-MQ включает в себя немного больше «готовых» готовых функций из коробки, чем обычное старое сообщество ActiveMQ . JBoss A-MQ — это готовая к выпуску защищенная версия ActiveMQ, которая упакована в Apache Karaf с некоторыми другими функциями, такими как консоль HawtIO (и многие другие).

Что происходит, когда люди пытаются симулировать более сложные сценарии развертывания в лабораторной среде или среде разработки, у них может не быть доступа к нескольким виртуальным машинам или машинам, чтобы попробовать полное развертывание в реальном мире. Поэтому они могут захотеть установить несколько брокеров на одну коробку. Это довольно просто, и все, что вам нужно сделать, это убедиться, что порты по умолчанию не конфликтуют. ПРИМЕЧАНИЕ: это не предназначено для развертывания производства !!! Не используйте этот способ для производства!

Вы можете стать довольно странным и настроить каждую дополнительную JVM A-MQ / Karaf с помощью команд администратора Karaf, но если вы хотите просто заставить что-то работать и хотите понять, где могут быть конфликты портов, проверьте это:

Загрузить JBoss A-MQ

Перейдите на портал поддержки Red Hat (или JBoss.org ) и загрузите копию JBoss A-MQ, которую вы хотите использовать. Обратите внимание, что эти биты одинаковы для любого веб-сайта, с которого вы загружаете, но вам нужна действующая подписка для использования в любых общих средах (все, кроме вашего ноутбука для разработки).

Для этого упражнения мы используем JBoss A-MQ 6.1 (имя файла jboss-a-mq-6.1.0.redhat-379.zip)

Установить в двух местах

Если мы хотим иметь двух отдельных брокеров JBoss A-MQ, давайте начнем с распаковки в два разных места:

~> unzip jboss-a-mq-6.1.0.redhat-379.zip -d amq01
~> unzip jboss-a-mq-6.1.0.redhat-379.zip -d amq02

Теперь в каждом пути установки (например, ./amq01/jboss-a-mq-6.1.0.redhat-379), который мы назовем каталогом BASE брокера, найдите файлы в папке $ BASE / etc с именем users.properties . Раскомментируйте последнюю строку в этом файле, чтобы у нас был пользователь с правами администратора.

Сменить порты

Последний шаг, который нам нужно сделать, это изменить порты в установке для amq02, чтобы они не конфликтовали.

Нам нужно коснуться трех файлов, которые представляют собой PID конфигурации для служб, которые работают в контейнере.

и т.д. / org.apache.karaf.management.cfg

В этом файле измените следующие свойства:

rmiRegistryPort = 1098  #default is 1099
rmiServerPort = 44445   #default is 44444

Обратите внимание, это измененные значения. Вы можете изменить их на что угодно.

и т.д. / org.apache.karaf.shell.cfg

В этом файле измените следующие свойства:

sshPort = 8102  #default is 8101

и т.д. / system.properties

И наконец, в этом файле отредактируйте:

org.osgi.service.http.port=8182   #default is 8181
activemq.port = 61617   #default is 61616
activemq.jmx.url=service:jmx:rmi:///jndi/rmi://localhost:1098/karaf-${karaf.na

Запустите своих брокеров

Иди и запусти своих брокеров с помощью скрипта $ BASE / bin / amq, и у тебя должно быть два работающих брокера без коллизий на портах.