通过unclean.leader.election解决offset out off range

通过unclean.leader.election配置解决offset out off range

  • kafka集群突然有一个broker退出
    查看日志报如下内容
    ERROR [ReplicaFetcherThread-3-4], Current offset 3381428 for partition [cmsps,4] out of range; reset offset to 3501150 (kafka.server.ReplicaFetcherThread)
  • 首先采取消极等待,等待退出的broker抓取leader副本的分区的数据赶上来,但是并不行
  • 想到另一个方法,就是通过Partition Assignments为每个分区的副本分配broker,将退出的broker上的分区副本全部手动分配到其他broker上,理想上是可以的,但当遇到几百个topic时,机械性的操作相当费时费力,而且遇到副本数等于broker数的topic就完全没有办法分配了,也没有办法减少这个topic的副本数,因此放弃。
  • 最后无奈,打算使用一个,以前从来不敢使用的配置,就是unclean.leader.election.enable = true,这就意味着不在isr队列中的broker都可以被选举为leader;
    配置参数,逐个重启broker,之前退出的broker成功启动当选leader,集群也不再报错。
  • broker宕机是解决了,但是我们是在牺牲数据的情况下解决的问题,也就是牺牲可靠性换取可用性。

如有更好的解决办法欢迎探讨;
有关unclean.leader.election.enable参数的详解见链接
Kafka参数图鉴——unclean.leader.election.enable

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值