ActiveMQモニタリング

1.構成ファイルconfの下のactivemq.xmlを変更します

ここに画像の説明を挿入

2.依存関係:

        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-broker</artifactId>
            <version>5.15.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-client</artifactId>
            <version>5.15.4</version>
        </dependency>
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-pool</artifactId>
            <version>5.15.7</version>
        </dependency>

3.コード

import javax.management.MBeanServerConnection;
import javax.management.MBeanServerInvocationHandler;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;
import java.io.IOException;
import org.apache.activemq.broker.jmx.BrokerViewMBean;
import org.apache.activemq.broker.jmx.QueueViewMBean;

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

        String jmx = "service:jmx:rmi:///jndi/rmi://192.168.0.21:11099/jmxrmi"; //固定格式,更换ip和配置到conf中的端口,一般建议端口使用11099
        JMXServiceURL url = new JMXServiceURL(jmx);
        JMXConnector connector = JMXConnectorFactory.connect(url, null);
        connector.connect();
        MBeanServerConnection connection = connector.getMBeanServerConnection();
        ObjectName name = new ObjectName("org.apache.activemq:brokerName=localhost,type=Broker");//brokerName=localhost   与配置文件对应
        BrokerViewMBean mbean = (BrokerViewMBean) MBeanServerInvocationHandler.newProxyInstance(connection, name,
                BrokerViewMBean.class, true);
        for (ObjectName queueName : mbean.getQueues()) {
    
    
            QueueViewMBean queueMbean = (QueueViewMBean) MBeanServerInvocationHandler.newProxyInstance(connection, queueName, QueueViewMBean.class, true);
           
            System.out.println("队列名称:"+queueMbean.getName());

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

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

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

        }
        connector.close();
    }

}

4.効果

キュー名:A50698DE296849AEB8F5A019687DDF62キューに
残っているメッセージ数:1
コンシューマーの
数:0発信キュー数:0


キュー名:async_queue
キューに残っているメッセージ数:0
コンシューマーの
:1発信キューの数:707


おすすめ

転載: blog.csdn.net/weixin_44613100/article/details/112967455
おすすめ