ActiveMQ 更改 Web 控制台端口

ActiveMQ change Web Console port

我目前正在使用 ActiveMQ 和 JMS。我面临的问题是我想更改 ActiveMQ Web 控制台的端口(运行 as localhost on Linux - ubuntu 22)。在默认端口 (8161) 上工作没有问题,但是当我在文件 jetty.xml 中更改端口时,Web 控制台不会启动(或短暂启动然后停止)。

下面是我做的步骤(安装路径是:/opt/apache-activemq-5.17.1/

$ cd opt/apache-activemq-5.17.1/conf
$ sudo nano jetty.xml

jetty.xml 中将端口从 8161 更改为 61616:

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

保存并返回后我启动ActiveMQ:

$ cd /opt/apache-activemq-5.17.1/bin/linux-x86-64
$ ls -l
total 152
-rwxr-xr-x 1 root root  15456 Mai 22 10:07 activemq
-rwxr-xr-x 1 root root  15248 Mai 22 10:07 libwrapper.so
-rwxr-xr-x 1 root root 111027 Mai 22 10:07 wrapper
-rw-r--r-- 1 root root   6730 Mai 22 10:07 wrapper.conf
$ sudo ./activemq start
Starting ActiveMQ Broker...
# Checking the status 
$ sudo ./activemq status
ActiveMQ Broker is running (26867).
# Checking the status again (about 2-5 seconds execution last command)
$ sudo ./activemq status
ActiveMQ Broker is not running.

Edit/Solution:

服务器没有启动,因为 OpenWire 已经在侦听端口 61616。我已经恢复了默认配置。如果您使用 JMS,则可以通过浏览器在默认端口 8161 上访问 ActiveMQ,并在 Java 中使用 tcp://localhost:61616 发送消息。感谢用户 justin-bertram!

默认情况下,ActiveMQ 在端口 61616 上侦听来自 OpenWire 客户端的连接。在 activemq.xml 中查看:

<transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>

因此,如果您将 Jetty 更改为也监听端口 61616,则 Jetty 或 ActiveMQ 本身将无法启动,因为一次只能将一个服务绑定到任何特定端口。