JMS 入站网关容器的消费者线程数乘以配置值的 3 倍

Number of Consumer threads for JMS Inbound gateway container are multiplied by 3 times the configured value

JMS 消息在 ativeMQ 中可用以供工作人员选择,工作人员配置如上, 我们想控制工作者可以处理多少消息,观察到消费者总是乘以 3 倍的配置。 从上面的配置可以看出,创建了 75 个消费者,75 个任务执行(workerPollerTaskExecutor)是 运行.

基本上正在创建 3 组具有相同名称的并发消费者(senExtractWorkerInGateway.container-1 的 3 个线程) 以及 workerPollerTaskExecutor 观察到的相同行为。 谁能帮我们理解为什么总是乘以 3 倍。

Consumers view from ActiveMq Queue

    <int-jms:inbound-gateway
    id="senExtractWorkerInGateway" 
    connection-factory="jmsConnectionFactory"
    correlation-key="JMSCorrelationID"
    request-channel="senExtractProcessingWorkerRequestChannel"
    request-destination-name="senExtractRequestQueue" 
    reply-channel="senExtractProcessingWorkerReplyChannel"
    default-reply-queue-name="senExtractReplyQueue"
    auto-startup="false"
    concurrent-consumers="25"
    max-concurrent-consumers="25"
    max-messages-per-task="1"
    reply-timeout="1200000" 
    receive-timeout="1200000"/>
<bean id="workerPollerTaskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
    <property name="corePoolSize" value="25"/>          
    <property name="maxPoolSize" value="25"/>
    <property name="queueCapacity" value="200"/>
</bean>

应用程序上下文正在加载 3 次(由于我们这边的代码问题)导致此行为。希望这对其他人有帮助。 谢谢。