Как каждый раз запускать ActiveMQ WebConsole на одном и том же сервере?

У меня есть 3 виртуальные машины, каждая из которых работает zookeeper а также activemq, Каждый раз, когда я начинаю ActiveMQ, ActiveMQ WebConsole начинается на другом сервере. Я хочу запускать ActiveMQ WebConsole на одном и том же сервере каждый раз, поэтому мне не нужно выяснять, какой из них выполняет webconsole через логи.

Вот так мой jetty.xml настроен:

<bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start">
         <!-- the default port number for the web console -->
    <property name="host" value="0.0.0.0"/>
    <property name="port" value="8161"/>
</bean>

2 ответа

Решение

Это невозможно, поскольку встроенный веб-сервер работает на брокере, который является главным.

Вы можете посмотреть на альтернативные веб-консоли, которые позволяют удаленное управление, такие как hawtio, которые могут подключаться к удаленным серверам. Вы можете запустить hawtio на локальном компьютере или запустить на другом хосте, или запустить его отдельно на одном из этих трех узлов и т. Д.

Запуск местного Hawt.io, такого как советы Клауса, является отличным вариантом.

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

Вам нужно будет запустить консоль в не встроенном режиме и установить (как минимум) три системных свойства. То есть обычно это включает в себя развертывание веб-консоли.war внутри Tomcat или аналогичного.

webconsole.jms.url=failover:(tcp://serverA:61616,tcp://serverB:61616)
webconsole.jmx.url=service:jmx:rmi:///jndi/rmi://serverA:1099/jmxrmi,service:jmx:rmi:///jndi/rmi://serverB:1099/jmxrmi
webconsole.type=properties

Старая статья, в которой обсуждается также использование встроенных веб-консолей для восстановления после отказа. Я не знаю, применимо ли это во всех деталях к текущим версиям.

Другие вопросы по тегам