分享

ActiveMQ对于某种队列或消息的接受

 开心豆豆2010 2011-04-07


ActiveMQ 支持Advisory Messages,它允许你通过标准的JMS 消息来监控系统。目前的Advisory Messages支持:

  • consumers, producers and connections starting and stopping
  • temporary destinations being created and destroyed
  • messages expiring on topics and queues
  • brokers sending messages to destinations with no consumers.
  • connections starting and stopping

Advisory Messages可以被想象成某种的管理通道,通过它你可以得到关于JMS provider、producers、consumers和destinations的信息。Advisory topics都使用ActiveMQ.Advisory.这个前缀,以下是目前支持的topics:

Client based advisories

Advisory Topics

Description

ActiveMQ.Advisory.Connection

Connection start & stop messages

ActiveMQ.Advisory.Producer.Queue

Producer start & stop messages on a Queue

ActiveMQ.Advisory.Producer.Topic

Producer start & stop messages on a Topic

ActiveMQ.Advisory.Consumer.Queue

Consumer start & stop messages on a Queue

ActiveMQ.Advisory.Consumer.Topic

Consumer start & stop messages on a Topic

在消费者启动/停止的Advisory Messages的消息头中有个consumerCount属性,他用来指明目前desination上活跃的consumer的数量。

Destination and Message based advisories

Advisory Topics

Description

ActiveMQ.Advisory.Queue

Queue create & destroy

ActiveMQ.Advisory.Topic

Topic create & destroy

ActiveMQ.Advisory.TempQueue

Temporary Queue create & destroy

ActiveMQ.Advisory.TempTopic

Temporary Topic create & destroy

ActiveMQ.Advisory.Expired.Queue

Expired messages on a Queue

ActiveMQ.Advisory.Expired.Topic

Expired messages on a Topic

ActiveMQ.Advisory.NoConsumer.Queue

No consumer is available to process messages being sent on a Queue

ActiveMQ.Advisory.NoConsumer.Topic

No consumer is available to process messages being sent on a Topic

以上的这些destnations都可以用来作为前缀,在其后面追加其它的重要信息,例如topic、queue、clientID、 producderID和consumerID等。这令你可以利用Wildcards 和 Selectors 来过滤Advisory Messages(关于Wildcard和Selector会在稍后介绍)。

例如,如果你希望订阅FOO.BAR这个queue上Consumer的start/stop的消息,那么可以订阅 ActiveMQ.Advisory.Consumer.Queue.FOO.BAR;如果希望订阅所有queue上的start/stop消息,那么可 以订阅ActiveMQ.Advisory.Consumer.Queue.>;如果希望订阅所有queue或者topic上的 start/stop消息,那么可以订阅ActiveMQ.Advisory.Consumer. >。

 

举 个例子:例如我们想监听所有以ActiveMQ.Advisory.Consumer.Topic.开头的TOPIC.那么我们在服务端发布发布的 TOPIC就必须以ActiveMQ.Advisory.Consumer.Topic.XX的形式写,然后客户端就可以通过接受 ActiveMQ.Advisory.Consumer.Topic.>的形式来接受所有这类似的TOPIC.

注意.如果我们要监听以ActiveMQ.Advisory.Consumer.Topic等形式的TOPIC我们的客户端就不能是持久话的。也就是persistent必须设置为false


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多