我有一個使用DefaultMessageListenerContainer設置具有以下配置:的ActiveMQ +彈簧+使用DefaultMessageListenerContainer - 極差表現
threadServiceListenerContainer(org.springframework.jms.listener.DefaultMessageListenerContainer) {
maxConcurrentConsumers = 10
concurrentConsumers = 1
destinationName = 'releaseThread'
pubSubDomain = false
connectionFactory = ref("connectionFactory")
messageListener = ref('threadServiceMessageListener')
}
有3000個坐在經紀人積壓消息。消費率似乎是2 /秒。我已經將JProfiler附加到了Java節點上,但似乎10個監聽器線程/消費者在最壞情況下處於空閒狀態,或者最多隻能一次運行。
消費者處理時間沒有註冊到JProfiler。消費者只是爲memcached添加一個值,而memcached正在健康運行。
看來,我的消費只是......坐在那裏......
有什麼想法?我重新啓動了代理,沒有性能差異。我重新啓動了節點,沒有性能差異。
我正在向經紀人注入地圖。
這裏是我的ConnectionFactory豆:
connectionFactory(org.springframework.jms.connection.CachingConnectionFactory, ref("amqConnectionFactory")) {
exceptionListener = {com.zipwhip.jms.JmsExceptionListener jmsExceptionListener -> }
sessionCacheSize = 100
}
amqConnectionFactory(org.apache.activemq.ActiveMQConnectionFactory) {
brokerURL = 'tcp://localhost:61616'
}
您使用的是什麼版本的AMQ?這聽起來像這個問題已修復在5.4,https://issues.apache.org/jira/browse/AMQ-2754 – 2012-03-01 05:41:43