簡體   English   中英

concurrentMons隊列的並發消費者

[英]concurrentConsumers for an ActiveMQ queue

我嘗試使用grails中的ActiveMQ隊列消息。 我為連接配置了一些spring bean,到目前為止一切都很好。

當我嘗試將concurrentConsumers設置為8以上時,問題就出現了。似乎將8設置為一個客戶端的最大值 - 如果配置超過8,則ActiveMQ資源管理器仍會顯示8個隊列消費者。 如果我為具有8個以上concurrentConsumers消費者的不同隊列配置兩個偵聽器,則ActiveMQ oszillate顯示的消費者數量,但總和始終為8。

我究竟做錯了什么? 配置示例顯示最多50個並發消費者...

這是我的配置,寫作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中刪除了事務管理器,它的工作原理!

然后我用google搜索了一下,並找到了cacheLevel設置的提示: http ://static.springsource.org/spring/docs/2.0.8/api/org/springframework/jms/listener/DefaultMessageListenerContainer.html#setCacheLevel%28int %29

使用事務管理器時,cacheLevel設置為none - bingo! 如果我現在將cacheLevel設置為CACHE_CONSUMER,一切都按預期工作......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM