关于Rabbitmq消息持久性机制的问题

时间:2019-10-28 08:26:26

标签: rabbitmq amqp rabbitmq-exchange

我正在阅读Persistence Configuration,并且有一些疑问。

我知道队列可以持久,也可以不持久,消息也分为两类:持久性或临时性。

如文档所述:持久性消息到达队列后将立即写入磁盘。

所以,这是我的问题:

  1. 如果我发送一条消息,但该消息未分发到任何队列, 该消息会持续存在吗?
  2. 如果队列不是持久队列,则消息将是(持久的还是短暂的,不是 被消耗)是在删除队列时从磁盘上删除吗?
  3. 如果已消耗一条消息,rabbitmq会从以下位置删除此消息吗? 物理存储?

任何关于如何测试这些条件的想法都将受到赞赏。

1 个答案:

答案 0 :(得分:1)

  

如果我发送一条消息,但该消息未分发到任何队列中,那么该消息是否持久?

否,请参见mandatory处理无法路由的消息。

  

如果队列不是持久性的,则删除队列时是否会从磁盘上删除消息(持久性或临时性,未被消耗)?

  

如果消耗了一条消息,rabbitmq会从物理存储中删除此消息吗?

消费了一条消息并且状态为unacked时,该消息不会被删除。

当您发送acknack时,该消息将从内存/磁盘中删除。