Kafka 副本OffsetOutOfRangeException
@(KAFKA)[kafka]
https://issues.apache.org/jira/browse/KAFKA-2477
影响版本0.8&之前,修复版本0.9.0.0
1、故障描述
近期,由于kafka集群负载增大,server.log中经常出现下面的错误日志。这是kafka自身的一个bug。
简单说就是由于副本去leader请求同步数据时,发现请求的offset超出了leader的offset范围(原因见下面代码解释),从而认为副本出错了,于是删除副本数据,从leader重新同步一份数据过来。由于每个分区的数据较大(约60G),同步时间较长,在此期间,leader及replication均处于高磁盘、网络IO的状态,导致storm读取数据时超时无响应。
对于opaque拓扑,当发现某个分区不可用时,会读取其它分区。而transactional拓扑必须等这个分区恢复。因此最后的结果是SA的拓扑恢复了,而US/SDC的拓扑挂掉。
[2016-03-29 18:24:59,403] WARN [ReplicaFetcherThread-3-4], Replica 2 for partition [g17,4] reset its fetch offset from 3501121050 to curre