rabbitmq是否从物理存储中删除消息

时间:2018-04-21 05:41:38

标签: spring rabbitmq spring-amqp spring-rabbitmq

我的应用程序中有持久的交换和队列。消息也是持久的。使用此配置,我确信我的消息存储在物理存储中。我想知道是否有任何到期时间,当我从物理存储中删除消息时,我的意思是硬盘,因为它在其中维护了消息存储。另外,如果我想从物理存储中读取消息,那么我可以这样做吗?

1 个答案:

答案 0 :(得分:4)

持久队列+持久消息意味着确实会保留消息。 这句话的例外情况超出了我的头脑:

  • 您可以为队列配置其他属性,例如大小限制
  • 达到基础文件系统的限制
  • 删除队列(这也会删除存储在其中的邮件)

至于阅读存储在队列中的消息,通常可以使用它们。

如果您想要在不删除它们的情况下阅读,您可以选择几个:

  • 欺骗经纪人(例如通过阅读所有经纪人但从未承认他们,这会将他们带回队列)
  • 阅读后再次将它们重新发布给代理商进行存储

但如果确实需要进一步保护,我会认真考虑将它们存储在其他地方(某种类型的数据库),这显然不在消息经纪人的目的之内。