java activemq jmx_Java操作 ActiveMQ 远程监控JMX设置

activemq.xml设置 第一个配置: 在你下载activemq文件夹下的config中,找到activemq.xml,在broker节点增加useJmx="true" useJmx表示开启jmx监控

d1f6c417f483b4feb1c505df92c5d16d.png

2.在managementContext节点更改

96a4461f07220bb89399f33b0f6978c7.png

3.修改bin/文件夹中的启动脚本activemq

1,Windows

SUNJMX=-Dcom.sun.management.jmxremote.port=11099-Dcom.sun.management.jmxremote.ssl=false \

-Dcom.sun.management.jmxremote.password.file=%ACTIVEMQ_BASE%/conf/jmx.password \

-Dcom.sun.management.jmxremote.access.file=%ACTIVEMQ_BASE%/conf/jmx.access

Java查询ActiveMQ队列信息

public static void main(String[] args) throws IOException, MalformedObjectNameException {

String url = "service:jmx:rmi:///jndi/rmi://localhost:11099/jmxrmi";

JMXServiceURL urls = new JMXServiceURL(url);

JMXConnector connector = JMXConnectorFactory.connect(urls,null);

connector.connect();

MBeanServerConnection conn = connector.getMBeanServerConnection();

//这里brokerName的b要小些,大写会报错

ObjectName name = new ObjectName("org.apache.activemq:brokerName=localhost,type=Broker");

BrokerViewMBean mBean = (BrokerViewMBean)MBeanServerInvocationHandler.newProxyInstance(conn, name, BrokerViewMBean.class, true);

for(ObjectName na : mBean.getQueues()){//获取点对点的队列 mBean.getTopics() 获取订阅模式的队列

QueueViewMBean queueBean = (QueueViewMBean)

MBeanServerInvocationHandler.newProxyInstance(conn, na, QueueViewMBean.class, true);

System.out.println("******************************");

System.out.println("队列的名称:"+queueBean.getName());

System.out.println("队列中剩余的消息数:"+queueBean.getQueueSize());

System.out.println("消费者数:"+queueBean.getConsumerCount());

System.out.println("出队列的数量:"+queueBean.getDequeueCount());

}

}

8622801808d782d60bf3da4b238684b5.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值