gpt4 book ai didi

RabbitMQ:下一条消息只能在前一条消息被确认后才能出队

转载 作者:行者123 更新时间:2023-12-04 02:18:58 32 4
gpt4 key购买 nike

我想在 RabbitMQ 的队列上有这个约束:

队列中的下一条消息在上一条消息(正在处理的消息)被确认之前不能出队。

通过这个我将实现事件的有序处理和跨多个队列的并行处理。我如何/我可以为此配置 RabbitMQ?

编辑(澄清):将有许多消费者都试图从所有队列中获取工作,并且由于他们无法从正在处理未确认事件的队列中获取工作 - 维持有序处理。

最佳答案

Next message in the queue can't be dequeued before previous message (the one being processed) is acked.

您可以通过 consumer prefetch limit 来做到这一点对于单个消费者。

Through this I will achieve ordered processing of events and parallel processing across multiple queues.

不幸的是,这不会产生您想要的效果。

可以为单个消费者设置。该消费者将等待一条消息被确认,然后再获取下一条消息。

但是,这适用于单个消费者,不适用于队列。

如果你有 2 个消费者,他们每个人都会并行处理一条消息。如果您有 10 个消费者,则将并行处理 10 条消息。

按顺序处理每条消息的唯一方法是让一个消费者的预取值为 1。

关于RabbitMQ:下一条消息只能在前一条消息被确认后才能出队,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32436855/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com