RabbitMQ独占队列丢失消息

时间:2016-06-10 19:39:36

标签: queue rabbitmq amqp messagebroker

对于消费者,当将队列声明为“独占”时,当消费者根据文档断开连接时,将删除队列。

假设队列中有消息等待处理并且消费者离线,则在删除队列时,此“独占”队列上的所有消息都将丢失。

是否有任何策略或方法可以保持队列“独占”,但保留队列/代理中的消息,以免丢失任何内容?

提前致谢。

1 个答案:

答案 0 :(得分:1)

当创建的频道断开连接时,将删除独占队列。

您可能想要的是独占消费者,可以通过在从队列中消费时将exclusive参数设置为true来完成。独占消费者确保只有一个消费者可以使用此队列。消费后,它会排除队列中的所有其他消费者。

总之,要使队列对一个使用者独占并将消息保留在此队列中,您应该:

  • 声明队列是持久的
  • 当生产者发布消息时,消息的传递模式应设置为持久性
  • 使用独家消费者