注:本文参考了网上资料
ActiveMq 自5.8版本起,提供了基于jmx标准的接口,因此可以通过jmx标准获取mq server的信息。
关于activemq的jmx配置,请自行解决。请注意远程连接时,会有一个socket随机端口,请注意防火墙。
ActiveMq官方提供的版本,自带了war应用,通过分析应用可以发现Jmx数据可以通过 org.apache.activemq.broker.jmx 包下面的MBean获取。
比较常用的MBean有BrokerViewMBean和QueueViewMBean(继承自 DestinationViewMBean),前者提供broker信息。
后者可以获取broker上的消息队列。如果需要获取具体的消息内容,可以通过 DestinationViewMBean.browse 方法获取。该接口返回标准CompositeData对象,查阅源码可以发现这个CompositeData对象是org.apache.activemq.command.Message的封装。
翻阅封装类org.apache.activemq.broker.jmx.OpenTypeSupport可以获取具体的字段信息