我的应用程序已部署在4个JBoss实例上。我正在使用active进行集成。
Spring作业从节点之一触发,并且步骤执行请求通过队列发送。配置为MessageChannelPartitionHandler
的网格大小为11,因此创建了11步执行请求。
另外,将DefaultMessageListenerContainer
的{{1}}设置为5。如果我理解这一点,在节点4和maxConcurrentConsumers
总数为5的情况下,{{ 1}}可以是20。
问题: 在执行作业时,我可以看到11个使用者在队列中处于活动状态。但是,只有7个使用者出队,并且4步执行请求仍在队列中挂起,并且从未被使用者出队。日志中没有任何内容,也没有例外,而且我从日志中观察到,其余4个线程从未启动。
这4个使用者每个节点一个,因此所有节点运行的线程减少了一个,这就是造成此问题的原因。另外,在activeMQ日志中为这些使用者找到了日志行下方,其余使用者未在记录日志。
maxConcurrentConsumers
组件:
- JBoss 7.1版
- activeMQ版本5.15
- 春季批次集成3.0.3