2010-03-17 103 views
2

使单个AMQ代理和100个消费者连接。我会将消息发送给某个特定的消费者,所以其他消费者不会收到消息(客户端过滤不起作用)。ActiveMQ - 将消息发送给特定的消费者

最简单的方法是创建虚拟目标(例如将它们命名为queue:consumer-),并在其中发送消息。然而,这将导致100个新的队列,这使得它更加复杂的监控。有没有其他的方法来做到这一点单队列?

回答

3

您可以使用JMS selectors

您会为每个消费者指定一个唯一的ID,生产者必须知道这些ID只能发送给特定的消费者。消费者必须合作,并设置一个选择器,只接收指定给其自己的ID的消息以及指定给所有/任何消费者的消息。

+0

正是我需要的。谢谢。 难道你不知道我可以在客户端使用AMQ + AJAX选择器吗? (例如在JavaScript中,当我订阅某个频道/主题时使用: amq.addListener('autobids','topic://se.minutauktion.autobids',root.onAutobid); – Archer 2010-03-18 14:37:35

+0

我只能看到QueueBrowserServlet会提取一个“选择器”参数,所以我猜你可以在ajax调用中使用selector = xxx查询参数。 – nos 2010-03-18 14:51:41

+0

太好了!谢谢! – Archer 2010-03-18 20:54:05

相关问题