【问题标题】:How to safely consume from an exclusive queue in RabbitMQ?如何安全地从 RabbitMQ 中的独占队列消费?
【发布时间】:2023-06-19 11:05:01
【问题描述】:

在远程客户端过程 (RPC) 配置中,客户端队列被声明为独占,如 official tutorial 中所示。如果客户端使用其排他队列中的消息并且在确认之前崩溃,我希望如果队列仍然存在,消息会自动重新排队,但在这种情况下,由于队列是排他的,队列不存在不再有,消息不会被重新排队。

有什么方法可以让这个场景更可靠吗?有没有办法将这些消息重新排列到另一个仍然存在的队列中?我想我可能会使用死信交换,但似乎这种消息(在消费者崩溃后服务器无法重新排队)不是由 DLX 管理的。

我有未定义数量的客户端进程,所以我担心队列必须是独占的,因为每个进程都有自己的队列。

任何帮助将不胜感激。

【问题讨论】:

    标签: python rabbitmq amqp pika


    【解决方案1】:

    如果需要独占消费和消费连续性,单活跃消费者可能更合适。

    单个活动消费者允许在队列中一次只拥有一个消费者,并在活动消费者被取消或死亡的情况下故障转移到另一个注册消费者。当消息必须按照它们到达队列的顺序被消费和处理时,只使用一个消费者很有用。

    您可以访问documentation了解更多信息。

    【讨论】:

      最近更新 更多