开发者社区 > 云原生 > 消息队列 > 正文

RocketMQ这两条消息没有被删除是因为他们所存储的文件没有达到1G,还属于当前写文件吗?

RocketMQ这两条消息没有被删除是因为他们所存储的文件没有达到1G,还属于当前写文件吗?这个主题总共就两条消息而已e221d2ad00aeb8241bcc1bc1bd91ebf2.png
我看commitlog的文件的最近更新是7.13号的08f782952c586a6cbe1fdf19ea9d2f72.png
3f0c5e42fbf7aa5c501b93581ad25cbf.png
我的文件保存时间是默认的48

展开
收起
游客6poszk7nfmalm 2023-07-23 20:34:07 63 0
2 条回答
写回答
取消 提交回答
  • 在RocketMQ中,消息的删除是通过定期清理物理文件来实现的。当一个主题或队列的消息存储文件(CommitLog文件)大小达到指定的上限时,RocketMQ会启动清理线程,删除已经被消费或过期的消息。

    如果某些消息尚未被删除,可能有以下几种原因:

    1. 消息尚未过期:RocketMQ可以根据消息的过期时间来判断是否需要删除消息。如果消息的过期时间还未到达,RocketMQ将不会删除该消息,而是等待消息过期后再进行清理。

    2. 消息仍然存在于当前写文件中:在消息写入CommitLog文件之后,RocketMQ并不会立即从文件中删除这些消息。只有当包含这些消息的文件被标记为可删除时,才会启动清理线程来删除这些消息。因此,即使消息的文件大小尚未达到1GB的上限,仍然属于当前写文件的范畴,这些消息也不会被删除。

    2023-07-28 09:51:41
    赞同 展开评论 打赏
  • 应该是文件没有过期。 如果文件过期了, 就会删除b74b96d9376f8c1f78acbb3fe583d9a6.png

    ——此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”

    2023-07-23 20:45:11
    赞同 展开评论 打赏

多个子产品线联合打造金融级高可用消息服务以及对物联网的原生支持,覆盖多行业。

相关产品

  • 云消息队列 MQ
  • 热门讨论

    热门文章

    相关电子书

    更多
    RocketMQ Client-GO 介绍 立即下载
    RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载
    基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载