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

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

我的文件保存时间是默认的48

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
1 条回复 A 作者 M 管理员
  1. 在RocketMQ中,消息的删除是通过定期清理物理文件来实现的。当一个主题或队列的消息存储文件(CommitLog文件)大小达到指定的上限时,RocketMQ会启动清理线程,删除已经被消费或过期的消息。

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

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

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

  2. 应该是文件没有过期。 如果文件过期了, 就会删除

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