删除activemq消耗的消息/秒

时间:2020-12-23 12:49:34

标签: c# activemq azure-service-fabric azureservicebus producer-consumer

我在我的应用程序中使用 ActiveMQ。我的问题是如何删除我使用 ActiveMQ 成功消费的消息。因为如果不删除,我的db.data文件一直在增长,不是最优解。

1 个答案:

答案 0 :(得分:0)

假设我们谈论的是持久化消息,一旦消费者确认了一条消息,它就会被标记为被删除。只有在不再使用其日志文件时才会从磁盘中删除实际的消息。你可以找到more details here

日志文件在使用时不会被清理:

  • 包含目的地或持久主题订阅的待处理消息
  • 包含正在使用的数据文件中的消息的 ACK(日志链接)
  • 引用一个待处理的事务,在事务完成之前无法删除该事务
  • 正在对该日志进行待处理的写入

如果您看到日志文件的堆积,在大多数情况下,其原因与已路由到某种类型的 DLQ 的未确认消息有关。要释放内存,请使用/清除消息或删除未使用的持久订阅,直到代理可以清除日志。