2014-12-08 72 views
0

我正在使用Activemq 5.9.1,并且我想知道如何在使用者重复的队列名称相同时拒绝。如何在使用队列时拒绝重复消费者

情况下是在这里..

(A)消费者订阅消息以 “A” 队列名,和(B)用户也订阅消息与

“A” 队列名称。在这种情况下,(A)或(B)消费者将收到消息。

但在我的系统中,不希望出现这种情况。 (A)消费者订阅队列“A”,并且

(B)消费者试图连接队列名称“A”,然后拒绝(B)消费者。

如果有可能拒绝消费者,告诉我该怎么办?

回答

1

您希望通过将consumer.exclusive标志设置为true来使用专用消费者,如下例所示。

queue = new ActiveMQQueue("TEST.QUEUE?consumer.exclusive=true"); 
consumer = session.createConsumer(queue); 

这将确保只有第一个消费者连接将被给予消息。你会看到所有消费者连接,但只有一个会收到消息。如果你愿意,你可以使用额外的用户作为备份。

如果您根本不想连接它,则始终可以将客户端ID设置为相同。如果您尝试使用相同的客户端ID连接到客户端,则会引发异常。

+0

谢谢!它帮助我很多〜 – user3676534 2014-12-09 02:18:40

相关问题