kafka 1.0.0 发送消息的时候报 WARN Received a PartitionLeaderEpoch assignment for an epoch

灰色ido 发表于: 2021-07-01   最后更新时间: 2022-10-17 17:17:16   1,973 游览

在向某个主题发送消息时,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 。但我的环境是单机的也出了这个问题。

我现在不清楚问题出现的原因,无法让它复现,但遇到好几次了。
论坛里的大佬们帮忙看下是什么原因导致的。

发表于 2021-07-01
添加评论

副本的offset比leader的新
最终,你还是要升级一下kafka版本来解决的。

灰色ido -> 半兽人 3年前

升级到哪个版本比较稳定? 比较新的那些版本出了问题查问题没有参考。

半兽人 -> 灰色ido 3年前

同版本选最新的就可以了。
http://kafka.apache.org/downloads (往下拉,找你的最新小版本)

灰色ido -> 半兽人 3年前

多谢了

你好 我关注了你 主要是我也遇到这个问题 不清楚该如何解决,问题的原因是什么?只能通过升级kafka版本解决吗?

感谢你的回复! 这篇文章是我看的第一篇,我比较疑惑,告警的分区是指比如

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的分区,只迁移报错的分区就没问题。

ps: 尽量别都放到0这个节点上,平均一点。

谢谢 我明白了 我仔细看了我的问题 是我自己建的Topic报错的.我自建的Topic是1个partition,1个replica 所以我应该只需要重新分配这个出问题的分区就可以了吧。

{"topic":"自建的Topic","partition":0,"replicas":[0]}

O(∩_∩)O

你的答案

查看kafka相关的其他问题或提一个您自己的问题