gpt4 book ai didi

spring - ActiveMQ 队列的 concurrentConsumers

转载 作者:行者123 更新时间:2023-12-01 05:29:39 27 4
gpt4 key购买 nike

我尝试在 grails 中使用来自 ActiveMQ 队列的消息。我已经为连接配置了一些 spring bean,到目前为止一切都很好。

当我尝试设置 concurrentConsumers 时,问题就开始了。以上 8. 似乎 8 被设置为一个客户端的最大值 - 如果我配置超过 8,ActiveMQ 资源管理器仍然显示队列的 8 个消费者。如果我为超过 8 个 concurrentConsumers 的不同队列配置两个监听器,ActiveMQ oszillate 显示的消费者数量,但总和始终为 8。

我究竟做错了什么?配置示例显示了最多 50 个的 concurrentConsumers...

下面是我的配置,写成groovy DSL,我想读起来没问题……

jmsFactory(org.apache.activemq.pool.PooledConnectionFactory) { bean ->
bean.destroyMethod = "stop"
connectionFactory = { org.apache.activemq.ActiveMQConnectionFactory cf ->
brokerURL = "tcp://localhost:61616"
}
}
jmsTemplate(org.springframework.jms.core.JmsTemplate) {
connectionFactory = jmsFactory
}
jmsMessageListener(org.springframework.jms.listener.adapter.MessageListenerAdapter, ref("messageService")) {
defaultListenerMethod = "onMessage"
}
jmsContainer(org.springframework.jms.listener.DefaultMessageListenerContainer) {
connectionFactory = jmsFactory
concurrency="10"
concurrentConsumers="15"
destinationName = "demoQueue"
messageListener = jmsMessageListener
transactionManager = ref("transactionManager")
autoStartup = false
}
jmsMessageListener2(org.springframework.jms.listener.adapter.MessageListenerAdapter, ref("messageService")) {
defaultListenerMethod = "onMessage2"
}
jmsContainer2(org.springframework.jms.listener.DefaultMessageListenerContainer) {
connectionFactory = jmsFactory
destinationName = "demoQueue2"
messageListener = jmsMessageListener2
transactionManager = ref("transactionManager")
autoStartup = false
}

最佳答案

由于 Petter 指出 ActiveMQ 或 Spring 配置不会有问题,所以我在 java 中创建了一个 spring 消费者并试图找到与我的 grails 消费者的区别。

Java 消费者按预期工作,但不使用事务管理器。所以我从我的 grails confid 中删除了事务管理器,它可以工作!

然后我用谷歌搜索了一下,发现了一个关于 cacheLevel 设置的提示:http://static.springsource.org/spring/docs/2.0.8/api/org/springframework/jms/listener/DefaultMessageListenerContainer.html#setCacheLevel%28int%29

当使用事务管理器时,cacheLevel 设置为 none - 宾果游戏!如果我现在将 cacheLevel 设置为 CACHE_CONSUMER,一切都会按预期进行...

关于spring - ActiveMQ 队列的 concurrentConsumers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11956779/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com