我想使用Spring Queue
同时收听来自DefaultMessageListenerContainer
的消息(大量消息)。
<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>
我从spring_Forum读到,在concurrentConsumers和maxConcurrentConsumers中可以指定最多5到10个concurrentConsumers。
问题1:
我想尽快读取太多邮件。
可以通过增加concurrentConsumers
&amp; maxConcurrentConsumers
到 1万或更多?
问题2:
请以任何其他方式提出建议如果对于过多的消息不是有效的方法吗?
假设,
在系统中运行的Threads
(等于maxConcurrentConsumers
)将开始颠簸,因为它疯狂地在所有正在运行的进程(Threads
)之间切换。
答案 0 :(得分:0)
处理消息的最佳线程数取决于它们将要执行的实际工作,这是与JMS没有直接关系的一般主题,例如参见glitch.com。
与JMS本身相关的可能优化首先是连接和会话缓存。见here。另一种方法是在你负担得起的情况下放弃持久性。