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 次(由于我们这边的代码问题)导致此行为。希望这对其他人有帮助。
谢谢。
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 次(由于我们这边的代码问题)导致此行为。希望这对其他人有帮助。 谢谢。