我对JMS很陌生,我正试图了解是否有一种方法可以并行地使用JMS队列中的消息,并使用Spring处理它们。
我检查了几个关于堆栈溢出的答案,但我仍然很困惑。
我正在开发的应用程序使用Spring和Weblogic作为消息代理。它使用JmsListener
类从单个生产者侦听JMS队列。在应用程序的JMS ConnectionFactory
配置中,设置了以下参数:
DefaultJmsListenerContainerFactory.setConcurrency("6-10");
这是否意味着,如果当前队列中有100条消息,那么将并行处理10条消息吗?如果是这样的话,我可以增加这个值来并行处理更多的消息吗?如果有的话,是否有任何限制?
此外,我对DefaultJmsListenerContainerFactory.setConcurrency
和setConcurrentConsumers
所做的事情感到困惑。
目前,JMS客户端应用程序的处理非常缓慢。因此,我需要一些建议来实现并行处理。
发布于 2022-10-12 16:22:39
concurrentConsumers
是一个固定数量的使用者,concurrency
可以在其中指定一个可变数字,根据需要进行向上/向下扩展。也见maxConcurrentConsumers
。
实际行为也取决于预取;如果每个使用者预取100条消息,那么只有一个使用者可能会得到所有消息。
没有限制(除了内存/cpu约束)。
https://stackoverflow.com/questions/74042229
复制相似问题