You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ActiveMQ 5.15的KahaDB中两类MQTT QoS1消息的物理删除时机问询

ActiveMQ 5.15 KahaDB中MQTT QoS1消息的物理删除时机

示例01场景(无消费者的未出队QoS1消息)

该消息的物理删除触发时机分两种情况:

  • 若消息设置了timeToLive(存活时间):消息过期后,Broker会将其标记为待清理状态,KahaDB的后台清理线程(默认定期执行)运行时,会物理删除这条无消费者引用的过期消息。
  • 若消息未设置存活时间且Broker无全局过期配置:
    • 手动通过Broker控制台、JMX工具执行消息删除操作;
    • Broker重启时,KahaDB执行日志整理(cleanup)流程,移除无引用的未消费消息;
    • 配置了KahaDB定期清理策略,触发时清理这类滞压的无消费者消息。

示例02场景(有消费者但未确认的未出队QoS1消息)

该消息会在以下任一条件满足时被物理删除:

  • 消费者最终发送消息确认(ACK),Broker标记消息为已处理后,由KahaDB后台清理线程物理删除;
  • 消费者连接断开且未重新连接(非持久化订阅场景),Broker移除该消息的消费者引用,随后清理线程删除消息;
  • 消息达到自身timeToLive过期时间,无论消费者状态如何,过期后被清理线程物理删除;
  • 手动通过控制台、JMX等工具删除该消息;
  • Broker重启后,若非持久化订阅的消费者未恢复会话,Broker清理该未确认消息;若是持久化订阅,消息会保留到消费者重新连接确认,或消息过期后被清理。

内容的提问来源于stack exchange,提问作者Rafael Pimenta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 07:35:23