1.设置方式
1)通过URL
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,
ActiveMQConnection.DEFAULT_PASSWORD,
"failover:(tcp://" + ip + ":" + port + ")?jms.prefetchPolicy.queuePrefetch=0");
2)通过ActiveMQConnectionFactory的API
设置prefetch 值(多个消费者有用)
ActiveMQPrefetchPolicy p = new ActiveMQPrefetchPolicy();
p.setQueuePrefetch(1);
connectionFactory.setPrefetchPolicy(p);
3)通过ActiveMQQueue
ActiveMQQueue queue = new ActiveMQQueue("TEST.QUEUE?consumer.prefetchSize=10");
Destination destination = session.createQueue("test");
2.参数设置
3.链接
http://activemq.apache.org/what-is-the-prefetch-limit-for.html
4.注意点
如果没有设置,默认1000,对于慢速消费者,会每次recieve的时候增加内存,可能会把内存撑爆。