[英]What is the default port for JMX in ActiveMQ?
我使用的是 ActiveMQ 5.3.2 和 5.6.0。 在 ActiveMQ 5.3.2 中,JMX 的默认设置是
SUNJMX="-Dcom.sun.management.jmxremote"
在 ActiveMQ 5.6.0 中,JMX 的默认设置是
ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote"
因此,这些设置没有端口定义。 你能告诉我 ActiveMQ 真的用这些设置启动了 JMX 连接吗? 如果是这样,我无法连接到1099,因此默认连接的端口是什么。如果端口是随机选择的,如何找到ActiveMQ正在使用的端口?
谢谢。
默认端口是 1099。这可以通过将 jmx 参数作为参数传递给 activeMQ 启动脚本(activemq.bat 或 .sh 文件)中的 activeMQ 来覆盖。 使用财产
dcom.sun.management.jmxremote.port用于设置 JMX 端口
如果您在 Spring Boot 中运行 ActiveMQ Broker,这是一种将 JMX 端口配置为值 11099 的简单方法:
BrokerService broker = new BrokerService();
broker.getManagementContext().setConnectorPort(11099);
broker.getSystemUsage().getStoreUsage().setLimit(100_000_000L);
broker.getSystemUsage().getTempUsage().setLimit(100_000_000L);
TransportConnector connector = new TransportConnector();
connector.setUri(new URI("tcp://localhost:61616?wireFormat.maxInactivityDuration=3000000&wireFormat.maxInactivityDurationInitalDelay=1000000"));
broker.addConnector(connector);
broker.start();
默认情况下,它似乎没有绑定到“默认的 activemq jmx 端口”,但是您可以修改 activemq 文件(或添加一个环境变量)。 如果您不指定端口,JMX 将不会通过明确声明 one 来打开一个端口。
例如,取消注释此行(或旧版本的 activemq 文件中的等效行)
# ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.port=11099 "
因此,我想您可以将其视为“如果您取消注释其配置行的默认值”。
此外,当您发出“停止”命令并且它没有传递--jmxurl
(在我运行的 activemq 版本中默认为端口 11099)时,它默认尝试联系service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi
即使默认配置没有在不先修改配置的情况下侦听该端口。 奇怪的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.