MQ的預取機制
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.連結
4.注意點
如果沒有設定,預設1000,對於慢速消費者,會每次recieve的時候增加記憶體,可能會把記憶體撐爆。