當(dāng)ACTIVEMQ的某個(gè)QUEUE有多個(gè)消費(fèi)者,為避免某個(gè)消息者取了更多個(gè)消息處理,而造成其他消費(fèi)者無(wú)消息可處理的情況,可以設(shè)置每個(gè)消費(fèi)者不預(yù)取消息,即每個(gè)消費(fèi)者消費(fèi)完單個(gè)消息后,再去取消息,這樣其他消費(fèi)者就能平均的有消息可處理。
https://stackoverflow.com/questions/35928089/activemq-how-to-prevent-message-from-going-to-dispatched-queue
設(shè)置方法,在CONNECT STRING中設(shè)置:
tcp://localhost:61616?jms.prefetchPolicy.all=0
tcp://localhost:61616?jms.prefetchPolicy.queuePrefetch=0
queue = new ActiveMQQueue("TEST.QUEUE?consumer.prefetchSize=10");
consumer = session.createConsumer(queue);
http://activemq.apache.org/what-is-the-prefetch-limit-for.html