Concurrency DefaultMessageListenerContainer concurrentConsumers和maxConcurrentConsumers处理过多消息的最大限制
我想使用Spring的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
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: