分布式消息服务Kafka版-消息超过老化时间,消息仍存在的原因
消息超过老化时间,消息仍存在的原因
问题现象:消息超过设置的老化时间(如果Topic已经设置了老化时间,此时“配置参数”中的log.retention.hours值将不对此Topic生效。仅在Topic中未设置老化时间时,“配置参数”中的log.retention.hours值才会对此Topic生效。),消息仍存在。
可能原因1:Topic的每个分区都是由多个大小相同的segment文件组成,每个segment文件的大小为500MB,当segment文件存储的消息大小到达500MB后,才会新建下一个segment文件。Kafka删除消息是删除segment文件,而不是删除一条消息。Kafka要求至少保留一个segment文件用来存储消息,如果正在使用的segment文件中包含超过老化时间的消息,由于此时segment文件不会被删除,所以超过老化时间的消息也不会被删除。
处理方法:等待segment文件被使用完,或者删除超过老化时间的消息所在的Topic。
可能原因2:Topic中存在一条create time为未来时间的消息(例如当前时间为1月1日,create time设置成了2月1日),此消息在72小时后,并不会被老化,导致在此消息后创建的其他消息都不会被老化。
处理方法:删除create time为未来时间的消息所在的Topic。
- kafka是什么_kafka介绍_分布式消息服务Kafka版
- 分布式消息服务Kafka版与分布式消息服务RocketMQ版的区别_Kafka与RocketMQ对比_Kafka与RocketMQ差异
- 分布式消息中间件实战_分布式消息实战_分布式消息-华为云
- 分布式消息服务优势_分布式消息服务_消息队列-华为云
- RocketMQ是什么_RocketMQ介绍_分布式消息服务RocketMQ版
- 分布式消息系统Kafka_分布式消息系统_分布式消息kafka可以解决什么问题-华为云
- 分布式消息服务有哪些_分布式消息服务哪个好_分布式消息-华为云
- Kafka与其他消息队列的对比_什么是Kafka_分布式消息系统-华为云
- Kafka架构_Kafka如何实现负载均衡_Kafka数据存储方式-华为云
- 分布式消息中间件的作用_分布式消息中间件_分布式消息-华为云