当前位置: 首页 > 知识库问答 >
问题:

具有自定义 jmx 端口的代理的主动 MQ 5.8 网络

赵宏达
2023-03-14

我正在尝试运行一个代理网络,其中2个代理在同一个网络上,但在2个不同的虚拟机上。

由于一些内部约束,我不得不使用一个定制的jmx端口。我使用Tanuki包装器在Ubuntu服务器上启动ActiveMQ。

以下是我的activemq.xml的相关部分

<broker xmlns="http://activemq.apache.org/schema/core" advisorySupport="false" useJmx="true" brokerName="test1" dataDirectory=".../data/activemq">
    <networkConnectors>
        <networkConnector uri="multicast://1.2.3.4:101234?group=test" 
            dynamicOnly="true"
            networkTTL="3"
            prefetchSize="1"
            decreaseNetworkConsumerPriority="true" 
            userName="user"
            password="password"/>
    </networkConnectors>

    <transportConnectors>
        <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"  rebalanceClusterClients="true" updateClusterClients="true" />
        <transportConnector name="nio" uri="nio://0.0.0.0:61617"  rebalanceClusterClients="true" updateClusterClients="true" discoveryUri="multicast://1.2.3.4:101234?group=test"  />
    </transportConnectors>
    ...
    <managementContext>
        <managementContext createConnector="false"/>
    </managementContext>
    ...
</broker>

以下是wrapper.conf的相关部分:

# Uncomment to enable jmx
wrapper.java.additional.1=-Dcom.sun.management.jmxremote
wrapper.java.additional.2=-Dcom.sun.management.jmxremote.port=4321
wrapper.java.additional.3=-Dcom.sun.management.jmxremote.authenticate=false
wrapper.java.additional.4=-Dcom.sun.management.jmxremote.ssl=false

在两个代理上运行ActiveMQ时,我看到了带有预期选项的进程:

activemq 30682 30680 3 13:27?00:00:30 java-Dcom.sun.management。jmxremote-Dcom.sun.management.jmxremove。端口=4321-Dcom.sun.management.jmxremote。authenticate=false-Dcom.sun.management.jmxremote。ssl=false-Djavax.net.ssl.keyStore=../conf/broker。ks-Djavax.net.ssl.trustStore=../conf/broker。ts-Dcom.sun.management。jmxremote-Dorg.apache.activemq。UseDedicatedTaskRunner=true-Djava.util.logging.config.file=logging。属性-Dactivemq.conf=../conf-Dactivemq.data=../data-Xms2048m-Xmx2048m-Djava.library.path=../bin/linux-x86-64/-classpath..//bin/wrapper.jar:../bin/activemq。震击器。键=y4TuwO32Hj6kN7w8-振打器。port=32000-Dwrapper.jvm.port.min=31000-dwraper.jmm.port.max=31999-dwraper。pid=30680-Dwrapper。版本=3.2.3-dwraper。native_library=wrapper-Dwrapper。service=TRUE-Dwrapper.cpu。超时=10-Dwrapper。jvmid=1 org.tanukisoftware.wrapper。包装器SimpleApp org.apache.activemq.console。主要起点

端口在运行的岸墙上打开。

代理的网络已经启动,但是我无法使用带有server_dns:4321的jvisualvm连接到jmx。它返回错误“无法使用服务连接到server _ DNS:4321:JMX:RMI:///JNDI/RMI://server _ DNS:4321/JMX RMI

我可以通过tcpDump看到端口上的一些流量。

有人能告诉我我做错了什么吗?或者我应该如何使用ActiveMQ作为具有自定义jmx端口的代理网络?

共有1个答案

柴飞扬
2023-03-14

JMX需要2个开放端口。rmi需要额外的一个。多亏了这篇文章:Apache ActiveMQ浏览器无法连接到JMX控制台

在我的例子中,修复方法是更改包装器的配置,以公开rmi端口并在防火墙上打开端口

# Uncomment to enable jmx
wrapper.java.additional.1=-Dcom.sun.management.jmxremote
wrapper.java.additional.2=-Dcom.sun.management.jmxremote.port=4321
wrapper.java.additional.3=-Dcom.sun.management.jmxremote.port=8765
wrapper.java.additional.4=-Dcom.sun.management.jmxremote.authenticate=false
wrapper.java.additional.5=-Dcom.sun.management.jmxremote.ssl=false
 类似资料:
  • 我希望在JavaFX中有一个完全定制的窗口。与此处完全相同的问题: https://code.msdn.microsoft.com/WPF-styling-a-Window-in-fcf4e4ce 使用未DECORATED JavaFX阶段,我必须自己实现所有窗口功能-并失去所有本机窗口行为,包括: 拖动到顶部时最大化 拖动到两侧时的并排视图 单击任务栏时最小化/最大化 我可以以某种方式访问原生W

  • 我想使用Prometheus的JMX导出器收集使用Prometheus的自定义应用程序度量。我有一个应用程序,我已经打包到一个jar文件--它公开端口8989并声明Prometheus指标,但不公开Prometheus要刮的endpoint(根据我所读到的,Prometheus javaagent负责处理这个问题)。 我不确定文件应该是什么样子。另外,为什么建议使用库(并在默认注册表下注册新的度量

  • 问题内容: 有没有办法在kubernetes服务YAML定义中指定自定义 NodePort 端口?我需要能够在配置文件中显式定义端口。 问题答案: 您可以在部署中设置类型。请注意,为您的API服务器配置了一个选项(默认为)。您还可以通过设置对象下的属性来专门指定该范围内的端口,否则系统将为您选择该范围内的端口。 因此,带有指定的示例如下所示: 有关NodePort的更多信息,请参阅此文档。有关配置

  • 问题内容: 这是我的http服务器: 我需要在myHander内部访问实例t1。 有什么办法吗? 谢谢! 问题答案: 有一种方法可以将属性设置为class: 您必须注意,在所有使用myHandler的地方都将是t1的相同实例

  • 我想用自动增量id向firebase数据库添加一个新用户,如下截图所示: 我试过:

  • 由于istio-ingressgateway pods的targetPort是8443,那么将端口号定义为443的网关定义如何工作?