ActiveMQ代理设置:
Broker正在机器上运行:hostA
来自不同主机的客户端可以连接到我在hostA上运行的代理实例,任何主机都可以有任意数量的客户端。
有没有办法找出连接到代理的客户端数量,还列出哪些客户端告诉我每个主机与我的经纪人有多少连接。
我想在不假设主机数量的情况下这样做。
我可以通过使用lsof命令和一些解析输出来做到这一点,但我处于无法使用它的情况。
ActiveMQ命令行实用程序 activemq-admin 是否提供了任何功能。
答案 0 :(得分:1)
你可以通过activemq-admin获得几乎任何Mbean属性ActiveMQ暴露。没有任何属性或操作可以快速计算来自特定客户端的连接数。您必须在最终完成一些工作才能获得所需的所有详细信息,但所有原始数据都在那里。
示例:
经纪人统计:
activemq-admin query --objname type=Broker,brokerName=localhost
关联统计信息
activemq-admin query --objname type=Broker,brokerName=localhost,connector=clientConnectors,connectorName=<transport connector name>,connectionViewType=clientId,connectionName=*
See full doc here.
注意:此文档中的文档尚未更新,无法考虑AMQ中的Mbean更改。示例中对象名称的引用不正确。
您可以从MBeanInfo中获取JMX(例如,使用jconsole或visual vm)的对象名称(或示例sytax)。每个对象名称都会像org.apache.activemq:type那样。对于脚本,删除&#34; org.apache.activemq:&#34;并且你应该通过脚本从JMX开始做任何事情。
我想您也可以考虑将Jolokia与您的经纪人一起使用。虽然与activemq-admin脚本不兼容,但您可以从activemq-admin脚本中获取所有内容,但也可以访问所有操作。在过去,我大量使用activemq-admin脚本进行代理的本地监控/命令行管理,但已经开始转换所有内容以访问Jolokia服务。但同样,activemq-admin将为您提供一种方法来访问您在这里寻找的内容。