DefaultJmsListenerContainerFactory并发数:每个队列线程数何时开始增长?
DefaultJmsListenerContainerFactory中队列线程数的扩容时机
针对你提出的「DefaultJmsListenerContainerFactory里每个队列对应的线程数会在什么时机开始增长」这个问题,结合DefaultMessageListenerContainer的官方文档说明,我来给你拆解清楚:
- 先满足扩容的前置条件:必须把
maxConcurrentConsumers参数的值设置得大于concurrentConsumers,这样动态扩容机制才会被激活。因为concurrentConsumers的默认值是1,所以你只需要把maxConcurrentConsumers设为比如5,就开启了动态扩缩容的能力。 - 触发扩容的具体时机:当队列的消息负载持续增加时——也就是队列里积压的消息越来越多,当前
concurrentConsumers数量的线程已经没法及时处理这些消息了,容器就会开始逐步增加并发消费者线程,直到达到你设置的maxConcurrentConsumers上限(比如5个)。 - 额外补充缩容逻辑:等消息负载降下来之后,容器也会自动把线程数缩回到
concurrentConsumers的标准数量(默认是1),避免资源浪费。
内容的提问来源于stack exchange,提问作者Nabeel Sweidan
相关产品推荐
相关产品推荐

