Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ Distributed Message Service for Kafka/ Preguntas frecuentes/ Mensajes/ ¿Por qué todavía existen mensajes después de que transcurra el período de retención?
Actualización más reciente 2023-04-26 GMT+08:00

¿Por qué todavía existen mensajes después de que transcurra el período de retención?

Si se ha establecido el tiempo de caducidad para un tema, el valor del parámetro log.retention.hours no tiene efecto para el tema. El valor del parámetro log.retention.hours solo tiene efecto si no se ha establecido el tiempo de envejecimiento para el tema.

Causa posible 1: Cada partición de un tema consta de varios archivos de segmento del mismo tamaño (500 MB). Cuando el tamaño de los mensajes almacenados en un archivo de segmento alcanza los 500 MB, se crea otro archivo de segmento. Kafka elimina los archivos de segmento en lugar de los mensajes. Kafka requiere que al menos un archivo de segmento esté reservado para almacenar mensajes. Si el archivo de segmento en uso contiene los mensajes envejecidos, el archivo de segmento no se eliminará. Por lo tanto, los mensajes envejecidos permanecerán.

Solución: Espere hasta que el segmento ya no esté en uso o elimine el tema en el que los mensajes hayan alcanzado su período de retención.

Possible cause 2: En un tema, hay un mensaje cuyo CreateTime es un tiempo futuro. Por ejemplo, se supone que es el 1 de enero y el CreateTime es el 1 de febrero. El mensaje no será envejecido después de 72 horas a partir de ahora. Como resultado, los mensajes creados posteriormente tampoco serán envejecidos.

Solución: Elimine el tema donde el CreateTime de un mensaje es un tiempo futuro.