Concurrency DefaultMessageListenerContainer concurrentConsumers和maxConcurrentConsumers处理过多消息的最大限制

Concurrency DefaultMessageListenerContainer concurrentConsumers和maxConcurrentConsumers处理过多消息的最大限制,concurrency,parallel-processing,cpu-usage,spring-jms,Concurrency,Parallel Processing,Cpu Usage,Spring Jms,我想使用Spring的DefaultMessageListenerContainer同时侦听Queue中的消息(大量消息) <bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer"> <property name="connectionFactory" ref="connectionFactory"/> <prope

我想使用Spring的
DefaultMessageListenerContainer
同时侦听
Queue
中的消息(大量消息)

<bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
    <property name="connectionFactory" ref="connectionFactory"/>
    <property name="destinationName" ref="queue"/>
    <property name="messageListener" ref="myMessageListener"/>
    <property name ="concurrentConsumers" value ="10"/>
    <property name ="maxConcurrentConsumers" value ="10000"/>        
</bean> 

我从中了解到,在concurrentConsumers和maxConcurrentConsumers中最多可以指定5到10个concurrentConsumers。

问题1:

我想尽快阅读太多的信息

是否可以将
concurrentcummers
maxconcurrentcummers
增加到10000或更多

问题2:

如果这不是处理太多信息的有效方法,请建议其他方法

假设,
系统中运行的
线程
(等于
maxConcurrentConsumers
)将开始颠簸,因为它在所有运行进程之间疯狂地切换上下文(
线程
)。

处理消息的最佳线程数取决于它们将要做的实际工作,这是一个与JMS没有直接关系的通用主题,请参见示例


与JMS本身相关的可能优化首先是连接和会话缓存。看见另一种方法是,如果您负担得起的话,就放弃持久性。

处理消息的最佳线程数量取决于它们将要做的实际工作,这是一个与JMS没有直接关系的一般主题,请参见示例

与JMS本身相关的可能优化首先是连接和会话缓存。看见另一种方法是,如果你负担得起,就放弃持久性。

Related:Related: