在向某个主题发送消息时,kafka broker后台日志总是提示告警信息。
[2021-07-01 01:41:41,625] WARN Received a PartitionLeaderEpoch assignment for an epoch < latestEpoch. This implies messages have arrived out of order. New: {epoch:0, offset:16941854}, Current: {epoch:1, offset13646164} for Partition: TMonitor-0 (kafka.server.epoch.LeaderEpochFileCache)
查看broker上的日志文件:
[root@cloud005 TMonitor-0]# ls
00000000000013646164.index 00000000000013646164.log 00000000000013646164.snapshot 00000000000013646164.timeindex leader-epoch-checkpoint
leader-epoch-checkpoint 中的内容如下:
[root@cloud005 TMonitor-0]# cat leader-epoch-checkpoint
0
1
1 13646164
13646164 在告警信息中、log目录下、leader-epoch-checkpoint都存在。
使用的kafka版本为 1.0.0 ,尝试在网上搜了关于这个告警的信息,看到有人说是kafka 使用 HW 在多副本情况下节点故障导致的。参考 https://issues.apache.org/jira/browse/KAFKA-7415 。但我的环境是单机的也出了这个问题。
我现在不清楚问题出现的原因,无法让它复现,但遇到好几次了。
论坛里的大佬们帮忙看下是什么原因导致的。
副本的offset比leader的新
最终,你还是要升级一下kafka版本来解决的。
升级到哪个版本比较稳定? 比较新的那些版本出了问题查问题没有参考。
同版本选最新的就可以了。
http://kafka.apache.org/downloads (往下拉,找你的最新小版本)
多谢了
你好 我关注了你 主要是我也遇到这个问题 不清楚该如何解决,问题的原因是什么?只能通过升级kafka版本解决吗?
可以参考这篇文章:Kafka Broker 日志警告无法消除 : Received a PartitionLeaderEpoch assignment for an epoch < latestEpoch
感谢你的回复! 这篇文章是我看的第一篇,我比较疑惑,告警的分区是指比如
New: {epoch:0, offset:16941854}, Current: {epoch:1, offset13646164}
这里那么我重新分配
{"topic":"__consumer_offsets","partition":0,"replicas":[0]} {"topic":"__consumer_offsets","partition":1,"replicas":[0]}
就行了吗?
你需要确认报错的topic是
__consumer_offsets
的分区,只迁移报错的分区就没问题。谢谢 我明白了 我仔细看了我的问题 是我自己建的Topic报错的.我自建的Topic是1个partition,1个replica 所以我应该只需要重新分配这个出问题的分区就可以了吧。
{"topic":"自建的Topic","partition":0,"replicas":[0]}
O(∩_∩)O
是的。
你的答案