У меня есть установка 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 работает нормально.
Кажется, мой потребитель просто... сидит...
Есть предположения? Я перезагрузил брокера, никакой разницы в производительности. Я перезагрузил узел, никакой разницы в производительности.
Я внедряю Map в брокера.
Вот мой компонент 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'
}