如何每次都在同一个服务器启动ActiveMQ WebConsole?

How to start ActiveMQ WebConsole at the same server every time?

我有 3 个虚拟机,每个 运行 zookeeperactivemq。 每次我启动 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>

这是不可能的,因为嵌入式 Web 服务器 运行 在主代理上。

您可以查看允许远程管理的替代 Web 控制台,例如可以连接到远程服务器的 hawtio。您可以在本地计算机上启动 hawtio,或者在其他主机上 运行,或者在这 3 个节点之一上单独启动它等

运行 当地人 Hawt.io 喜欢 Claus 的建议是一个不错的选择。

如果您想坚持使用 Web 控制台,实际上可以让它连接到当前的主代理。

您需要以非嵌入式模式启动控制台并设置(至少)三个系统属性。也就是说,通常这涉及将 web-console .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

An old article 也讨论了使用嵌入式 Web 控制台进行故障转移。我不知道它是否适用于当前版本的所有细节。