2014-12-08 70 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

相關問題