错误日志:

ERROR [ReplicaFetcher replicaId=0, leaderId=2, fetcherId=0] Exiting because log truncation is not allowed for partition IRT_Dev_HeartBeat-18, current leader's latest offset 45479 is less than replica's latest offset 46250 (kafka.server.ReplicaFetcherThread)

 

解决办法:

在配置文件中间添加如下

#分区水位不同步导致kafka退出问题解决,
#unclean.leader.election.enable=true

 

问题分析:

------------------------

这种致命的错误导致的原因有很多。
1、磁盘满了
2、数据被破坏了
核心的错误是leader的数据比副本少,数据已经不一致了,依次重启试试。或者放弃掉副本的数据。
unclean.leader.election.enable=true
用这个参数,可能会丢数据,慎用。

 

-----------------------

其中这个跟我的问题很像。大概意思是follower因为某种原因,从leader中被剔除,而如果此时leader partitions重启,很可能会造成缓存数据丢失以至于leader LEO<follower LEo,follower partition所在broker会退出。我查了源码确实会退出

 

 

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐