我试图了解队列,DLQ,memoryLimit,producerFlowControl和 带有ActiveMQ的游标。 我希望有一个人可以帮助我!
我的测试是:
1 /队列中的MemoryLimit,且producerFlowControl设置为true(默认值)。 我将消息发送到此队列,达到memoryLimit,然后是生产者 被阻止。
=>我认为默认情况下启用storeCursor,这样我的生产者就不会 被阻止(邮件将存储在存储空间中)。有人可以解释吗?
2 /队列中的MemoryLimit,生产者流控制为false, storeCursor。 我将消息发送到此队列,memoryLimit和生产者未被阻止。 StoreCursor似乎可以正常工作,因为我的消息位于存储空间中,因为 队列的内存已满。
=>我们是否需要将producerFlowControl设置为false才能使游标起作用?
这可能有道理,但我认为ActiveMQ的默认行为是 启用了producerFlowControl的基于存储的游标(请参阅“消息游标” 文档页面,最后一个示例)。
3 / DLQ(v1)上的MemoryLimit 使用者拒绝某些消息后,DLQ充满错误。 当达到memoryLimit时,消息进入存储空间。 =>好。
4 / DLQ(v2)上的MemoryLimit 我与生产者发送消息到我的DLQ。 当达到memoryLimit时,生产者将被阻止(例如在我的第一个测试中 用于队列)。
=>您如何根据我们填写DLQ的方式来解释不同的行为 ?
=>为什么队列和DLQ之间的行为不同?