1
我想知道,在ActiveMQ中是否有用戶可以限制ActiveMQ在達到某個閾值後不接受輸入隊列中的消息的任何屬性? 到目前爲止,我能夠使用內存約束找出其流量控制。 我想當輸入隊列達到其特定的閾值時,動態地阻止我的輸入隊列。 有沒有其他軟件可以幫助我實現我的目標?如何設置ActiveMQ停止接受消息?
我想知道,在ActiveMQ中是否有用戶可以限制ActiveMQ在達到某個閾值後不接受輸入隊列中的消息的任何屬性? 到目前爲止,我能夠使用內存約束找出其流量控制。 我想當輸入隊列達到其特定的閾值時,動態地阻止我的輸入隊列。 有沒有其他軟件可以幫助我實現我的目標?如何設置ActiveMQ停止接受消息?
可能的方法是將自定義broker interceptor插入ActiveMQ。
柔軟你的Spring代理配置有:
<plugins>
<bean id="myPlugin" class="org.foo.CheckThresholdPlugin"/>
</plugins>
然後擴展BrokerPlugin覆蓋發送方法。
package org.foo;
import org.apache.activemq.broker.Broker;
import org.apache.activemq.broker.BrokerPlugin;
public class CheckThresholdPlugin extends BrokerFilter {
public void send(ProducerBrokerExchange producer, Message message) throws Exception {
boolean isOverThreshold = /* figure it out by getting Destination from Message */
if (isOverThreshold) {
throw new Exception("The threshold is exceeded.");
} else {
super.send(producer, message);
}
}
}
非常感謝Knodelesser。 – madhurika