为什么消息已经过期还未被删除?

问题现象

您发送的消息在服务端保存的时间已经超过了消息保留时长,但依然可以查询到消息。

说明

消息保留时长指在磁盘容量充足的情况下,消息的最长保留时间。默认值为72小时,取值范围为24小时~480小时。磁盘容量不足(即磁盘水位达到85%)时,无论消息是否超过消息保留时长,都将根据服务端存储消息的时间先后顺序提前删除旧的消息,以确保服务可用性。

可能原因

  • 消息所保存的Segment片段大小未超过1 GB,消息不会被删除。

    说明

    为了减少存储文件的碎片化,消息文件以Segment的形式存储。默认情况下,每个Segment片段大小为1 GB。删除文件时,以Segment为单位进行删除。当Segment存储未满时,消息不会被删除。

  • 磁盘容量充足,使用率低于75%,云消息队列 Kafka 版设置的集中清理消息的时间还未到,消息不会被删除。

    说明

    磁盘使用率低于75%时,在每天凌晨4点,云消息队列 Kafka 版集中删除超过消息保留时长的消息。