RabbitMQ消息RE交付



说我与兔子有连接,我已经拉了1000条消息,但尚未达到ACK,因为它们是通过一个封锁集合中的单个线程处理的。

现在假设我的连接死亡并自动恢复。在这一点上,服务器上的所有这些味精都将重新排队以进行交付。但是我仍然有旧的送货标签的本地副本。

这使我相信我应该通过清除我的本地队列来处理连接或引导事件。

您可以确认这是真的吗?

是的。这些消息将被重新发送。

因此,除了清除我们当地排队的消息外,您可能需要考虑您的预购,以便您在本地排队没有那么多消息。

您的策略是拉1000,对它们全部处理,然后最后全部处理?我可以看到,由于性能原因,您可能会这样做,以便您可以发送一个具有多重= true的ACK,但是它确实引入了额外的重新交付和重复处理风险。

您是对的。如果您一次处理一条消息,则可以将一条消息设置为1,而您也无需在本地清除任何消息。

最新更新