首先在 activemq.xml 中新增以下属性

在broker 节点新增属性 useJmx="true"

在managementContext 节点配置断开与访问服务iP

配置成功后启动

下面来看测试代码

/**

* @Title: ActivemqTest.java

* @Package activemq

* @Description: TODO(用一句话描述该文件做什么)

* @author LYL

* @date 下午2:25:59

* @version V1.0

*/

package activemq;

import java.io.IOException;

import java.net.MalformedURLException;

import java.util.HashMap;

import java.util.Map;

import javax.management.MBeanServerConnection;

import javax.management.MBeanServerInvocationHandler;

import javax.management.ObjectName;

import javax.management.remote.JMXConnector;

import javax.management.remote.JMXConnectorFactory;

import javax.management.remote.JMXServiceURL;

import org.apache.activemq.broker.jmx.BrokerViewMBean;

import org.apache.activemq.broker.jmx.QueueViewMBean;

/**

* @Title: ActivemqTest.java

* @Package activemq

* @Description: TODO(用一句话描述该文件做什么)

* @author LYL

* @date 下午2:25:59

* @version V1.0

*/

public class ActivemqTest {

public static void main(String[] args) throws Exception {

String ip = "127.0.0.1:8188";

String url = String.format("service:jmx:rmi:///jndi/rmi://%s/jmxrmi",ip);

Map credentials = new HashMap<>();

// credentials.put(JMXConnector.CREDENTIALS, new String[] {"admin", "admin"});

JMXServiceURL urls = new JMXServiceURL(url);

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

connector.connect();

MBeanServerConnection conn = connector.getMBeanServerConnection();

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

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

ObjectName[] pAry = mBean.getQueueSubscribers();

for (ObjectName objectName : pAry) {

}

ObjectName[] ary = mBean.getQueues();

for (ObjectName objectName : ary) {

QueueViewMBean queueBean = (QueueViewMBean) MBeanServerInvocationHandler.newProxyInstance(conn, objectName, QueueViewMBean.class, true);

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

System.out.println("消息积压数:"+queueBean.getQueueSize());

System.out.println("入队:"+queueBean.getEnqueueCount());

System.out.println("出队:"+queueBean.getDequeueCount());

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

System.out.println("生产者数:"+queueBean.getProducerCount());

}

}

}

java activemq jmx_通过JMX 获取Activemq 队列信息相关推荐

  1. Java知识点总结(反射-获取类的信息)

    Java知识点总结(反射-获取类的信息) @(Java知识点总结)[Java, 反射] 应用反射的API,获取类的信息(类的名字.属性.方法.构造器等) import java.lang.reflec ...

  2. Java微信授权小程序获取用户手机号信息

    注意:目前该接口针对非个人开发者,且完成了认证的小程序开放(不包含海外主体).需谨慎使用,若用户举报较多或被发现在不必要场景下使用,微信有权永久回收该小程序的该接口权限. 官网地址如下: https: ...

  3. java mediainfo.dll_用MediaInfo获取音视频信息

    usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingMediaInfoNET;name ...

  4. linux查看java堆栈信息_Java运行状态分析2:获取线程堆栈信息

    Java运行状态分析2:获取线程堆栈信息 基本概念 出现内存泄漏或者运行缓慢场景,有时候无法直接从业务日志看出问题时候,需要分析jvm内存和线程堆栈 线程堆栈信息主要记录jvm线程在某时刻线程执行情况 ...

  5. activemq专栏之jmx代理不安全?

    线上服务器等保测试爆出系统问题--Java JMX代理不安全配置,一时间摸不到头脑.直到联系到了该问题的检测结构道出了其检测机理. 文章目录 一.检测机理 二.问题定位方法总结 1.找出占用端口的进程 ...

  6. activemq安装与配置_ActiveMQ(消息队列)从入门到了解

    一. ActiveMQ 简介 1 什么是 ActiveMQ ActiveMQ 是 Apache 出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个 完全支持 JMS1.1 和 J2EE ...

  7. JMX操作ActiveMQ(2)

    默认情况下,ActiveMQ使用useJmx后,jmx的url为 service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi 这时,jmx的MBean se ...

  8. java订阅发布模式_Spring Boot ActiveMQ发布/订阅消息模式原理解析

    本文在<Spring Boot基于Active MQ实现整合JMS>的基础上,介绍如何使用ActiveMQ的发布/订阅消息模式.发布/订阅消息模式是消息发送者发送消息到主题(topic), ...

  9. 日常记录:java JMX获取MBean从而获取目标应用的pid

    前言 之前做的小功能jar管理应用,启动.停止,尤其停止需要用pid来停止应用,现在说下怎么获取. 当然,不需要记录pid也能停止应用,可以通过命令找到应用对应的pid,不过记录下来比较方便,后续还用 ...

最新文章

  1. python【蓝桥杯vip练习题库】ADV-136大数加法(高精度加法)
  2. 设计模式五: 原型模式(Prototype)
  3. python-字母与ascii码的转换-利用数字转字母-利用字母转数字
  4. ERROR:The requested URL could not be retrieved解决方法
  5. ngx-bootstrap使用04 carousel组件
  6. Web App:赌的就是互联网未来并 非无可挑剔
  7. SpringBoot集成JWT 实现接口权限认证
  8. OBS Studio录屏软件安装和使用教程
  9. PROFINET通信基础知识
  10. Django 开发文档
  11. 三维提取等值面的重建方法Marching Cubes
  12. 【UEFI实战】UEFI中使用汇编代码
  13. linux怎么sftp传文件,如何使用Linux SFTP命令传输文件
  14. 20230103编译ToyBrick的TB-RK3588X的Andorid12的LOG01
  15. ds18B20_verilog
  16. Unable to add window——token android.os.BinderProxy@196e65b8 is not valid;is your activit is running?
  17. mysql5.7.28数据降级兼容mysql5.6.46
  18. 千亿级平台技术架构:为了支撑高并发,我把身份证存到了JS里
  19. COMP252, Winter 2022. Jan 13, 2022. Due Jan 20, 2022, 4pm.
  20. 由 serverAdd.sin_addr.s_addr 引发的思考

热门文章

  1. Windows7 + Nginx + Memcached + Tomcat 集群 session 共享
  2. error C2440 “static_cast” 无法从“void (__thiscall CPppView )(void)”转换为“LRESULT (__thiscall
  3. 前复权后复权程序C# .net
  4. 【转】SASS用法指南
  5. 为什么要用Redis
  6. BeanShell自动装箱拆箱
  7. 《低功耗蓝牙开发权威指南》——第3章低功耗蓝牙的体系结构
  8. 14-angular.isDefined
  9. 关于img 403 forbidden的一些思考
  10. windows清理剪切板