`
sswh
  • 浏览: 161646 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

ActiveMQ学习笔记之十一--监控Broker(ActiveMQ的Advisory message)

    博客分类:
  • java
阅读更多

通知消息(Advisory Message


简单的说就是实现了ActiveMQbroker上各种操作的记录跟踪和通知。

使用这个功能,你可以实时的知道broker

1.     创建或销毁了连接,

2.     添加或删除了生存者或消费者,

3.     添加或删除了主题或队列,

4.     有消息发送和接收,

5.     什么时候有慢消费者,

6.     什么时候有快生产者

7.     什么时候什么消息被丢弃

8.     什么时候broker被添加到集群(主从或是网络连接)

这个机制是ActiveMQJMS协议的重要补充,也是基于JMS实现的ActiveMQ的可管理性的一部分。多个ActiveMQ的相互协调和互操作的基础设置。

分类

Advisory

说明

DataStruct类型

客户端连接
相关

ActiveMQ.Advisory.Connection

客户端连接、或终止时[Connection.start()
或者stop()方法被调用]

ConnectionInfo
RemoveInfo

 

ActiveMQ.Advisory.Producer.Queue

当生产者被创建、或终止时
[session.createProducer()
、或者
session.close()
方法被调用]

ProducerInfo
RemoveInfo

 

ActiveMQ.Advisory.Producer.Topic

 

 

 

ActiveMQ.Advisory.Consumer.Queue

当消费者被创建、或终止时
[session.createConsumer()
、或者
session.close()
方法被调用]

 

 

ActiveMQ.Advisory.Consumer.Topic

 

 

队列相关

ActiveMQ.Advisory.Topic

任何Topic被创建或者销毁时

DestinationInfo

 

ActiveMQ.Advisory.Queue

 

 

消息相关
[
需要手工开启]

ActiveMQ.Advisory.MessageConsumed.Queue

当消息被成功消费时[消息应答成功]

ActiveMQMessage

 

ActiveMQ.Advisory.MessageConsumed.Topic

 

 

 

    public static void testAdvisory4() throws Exception {

       ConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616");

       Connection connection = factory.createConnection();

       connection.start();

 

       final Session session = connection.createSession(false/*支持事务*/, Session.AUTO_ACKNOWLEDGE);

       Destination queue = AdvisorySupport.getMessageConsumedAdvisoryTopic(session.createQueue("test_123"));

       MessageConsumer consumer = session.createConsumer(queue);

       consumer.setMessageListener(new MessageListener() {

 

           @Override

           public void onMessage(Message message) {

              System.out.println(message);

              ActiveMQMessage consumedMessage = (ActiveMQMessage) ((ActiveMQMessage) message).getDataStructure();

              System.out.println("队列:[" + consumedMessage.getDestination() + "],消息:[id="

                     + consumedMessage.getMessageId() + "]被成功接收。");

           }

       });

    }

分享到:
评论
1 楼 刚开始吧 2014-09-26  
你好,我按照你上面的试验,不成功啊,我qq775716364.希望可以咨询点问题。

相关推荐

Global site tag (gtag.js) - Google Analytics