我是一個ActiveMQ /駱駝noob與心中的具體情況,我想知道如果這是可能的,其次是否有人可能提供一個小方向。動態調節一個ActiveMQ消息隊列與駱駝
基本上我需要從隊列中執行動態調節。 I.E在運行時設置從隊列中消耗特定消息組的速率的能力。
例如,我可能會添加一組將消耗在每秒10個消息的消息,另一個組應該以每秒1個消耗等等。
我知道設置駱駝和消息分組到隊列等路線的基本知識,但只是不能從文檔中弄清楚這一點。
我是一個ActiveMQ /駱駝noob與心中的具體情況,我想知道如果這是可能的,其次是否有人可能提供一個小方向。動態調節一個ActiveMQ消息隊列與駱駝
基本上我需要從隊列中執行動態調節。 I.E在運行時設置從隊列中消耗特定消息組的速率的能力。
例如,我可能會添加一組將消耗在每秒10個消息的消息,另一個組應該以每秒1個消耗等等。
我知道設置駱駝和消息分組到隊列等路線的基本知識,但只是不能從文檔中弄清楚這一點。
是啊看起來像你正在尋找經紀人側throtteling,以避免消費者阻止。
您是否在ActiveMQ用戶/開發論壇中提出了您的請求?
爲什麼不在Apache Camel JIRA中添加RFE?
對於給定的一組消息,確定速率的邏輯是什麼?
如果不同的消息組通過同一個調節器,它可能會變得複雜。它需要鑑別器來確定它屬於哪個組的哪個消息,因此哪個速率應該通過調節器。
如果您需要一些時間來填寫您的用例並記錄RFE,那麼我確信駱駝社區,開發人員可以提供幫助。
你可以嘗試自己實現它。基本上任何東西都是一個Processor,所以你可以做一個from(「activemq:queue:foo」)。process(myOwnThrottler).to(「bean:handleMessage」);
可以延長一些類的駱駝: - DelegateProcessor - DelayProcessorSupport - 節流
克勞斯易卜生 Apache的駱駝提交者
開源集成:http://fusesource.com 博客:http://davsclaus.blogspot.com/
你可以使用駱駝現有的throttler然後爲每種類型的消息使用不同的隊列,您需要配置不同的節流率?
例如
from("activemq:Queue1.Input").
throttle(20).
to("activemq:Queue1.Output");
from("activemq:Queue2.Input").
throttle(5).
to("activemq:Queue2.Output");
OK,我會稍微詳細地制定出方案並儘可能我可以告訴突出主要攔截。
我有兩組消息(實際上規模要大得多),每個消息都有不同的限制要求 - 比方說,我在消息標題中將其指定爲flowRate和flowTime。
我實現處理器按照Claus其檢查報頭字段,並用它們作爲延遲輸入。
我從組1和20000從組中添加20000個消息2
由於調節器是消費者側,由第1組激活延遲將導致其通過快速填充它的輸入緩衝器和第2級的消息,成爲緩慢將然後卡住...即使我按照James使用多個隊列。
我意識到我可以使用JMXGroupID標頭對消息進行分組並實現多個使用者,但不要認爲這會擴展到適應組和組的要求。
我基本上想知道的是,如果有任何方法可以做代理,而不是消費者側調節,或者其他解決方案,消費者可以調節而不會最終阻止。
希望我已經清楚地解釋了自己,並感謝迄今爲止提出的建議。
剛剛買了你的書「駱駝在行動」克勞斯的EAP副本。這是非常好的,我可以肯定地推薦給任何其他人抓住,或想了解更多關於駱駝。非常深入的東西。 – mysomic 2010-09-05 12:21:16