【发布时间】:2014-10-11 17:07:36
【问题描述】:
我正在使用 ActiveMQ 5.8,并在骆驼路线中配置通配符消费者。
我使用的是默认的 ActiveMQ 配置,所以我的默认配置如下
prefetch = 1
dispatch policy= Round Robin
现在我启动一个消费者 jvm,每个消费者有 5 个消费者,用于 2 个队列。两个队列都有相同类型的消息和相同数量的消息。
消费者除了打印消息什么都不做(所以没有数据库阻塞或消费者缓慢的问题)
编辑 我已将每个队列的 preFetch 设置为 1
我观察到其中一个队列比其他队列更快耗尽。
我期望的是队列以相同的速度耗尽,一种负载平衡。
一个令人惊讶的观察结果是 尽管 activemq webconsole 显示每个队列有 5 个消费者
当我调试我的消费者时,我只看到来自骆驼流的 5 个线程/消费者用于通配符队列 *.processQueue
上述行为的原因是什么? 如何确保所有队列以相同的速度耗尽?
有没有人分享编写自定义调度策略或覆盖 activemq 的默认值的经验?
【问题讨论】:
标签: java queue activemq dispatch