2015-10-14 289 views
1

我們正在使用ActiveMQ,並且正在尋找一種方法來爲我們的一些JMS隊列實施單消費者策略。我花了一些時間Google搜索,但我找不到限制隊列中消費者數量的方法。如何限制ActiveMQ JMS隊列中消費者的數量

下列任一將是很好的解決方案,爲我們:

  • 到指定活動的消費者在隊列中的最大數(在本例中1)的一種方式。
  • 在創建新隊列之前,詢問ActiveMQ是否有任何消費者已經處於活動狀態。

感謝

回答

1

有經紀人的一側沒有設置執行這樣的事情。但是,您可以在所有客戶中使用獨家消費者選項。這將允許所有消費者連接,但實際上只有一個消費者會收到所有消息,直到消失並選擇新的獨佔消費者。

如果您打算託管某種AMQ雲服務,並確實希望確保您的控件之外的應用程序按照SLA行爲,那麼您必須執行一些編碼。你可以實現ActiveMQ插件。

如果你實現一個插件並創建一個BrokerFilter那麼你可以覆蓋`addConsumer?方法。看看RuntimeConfigurationPlugin看看如何設置插件。

請不要實現一個插件不是一個簡單的管理調整,但需要一些工作。

+0

我們控制整個生態系統。 AMQ經紀人,生產者和消費者都是我們自己的應用程序和基礎設施。所以我不關心支持未知的應用程序。但是,由於我們問題域中的某些限制,我們冒着爲每個隊列創建多個消息使用者的風險,並且我們希望防止發生這種情況。 您是否知道有關詢問隊列中現有消費者的AMQ的任何機制?我相信這一定是可能的,因爲您可以在AMQ管理頁面中查看有關消費者的詳細信息。 謝謝 –

相關問題