一线大厂面试真题-说一下Kafka中Partition分区副本的Leader选举算法问题分析

目录

问题分析

问题答案


问题分析

Kafka的架构中,一个Topic逻辑主题,可以分成多个Partition分区实现消息内容理存储。

时,为了保证Partition分区的可靠性,Kafka设计了分区副本的概念,也就是一个Partition可以设置多个副本。

在多个副本中,由于设计到数据的同步,所以Kafka针对Partition分区副本集,设置Leader副本和Follower副本

Leader副本负责处理所有的读请求,Follower副本,只负责从Leader副本同步数

而这个问题,就是去了解候选人对于Partition分区副本集中的Leader选举机制的了解,所以如果希望获得面试官的青至少要回到到具体的点上。

因为在Kafka中,除了Partition分区副本的Leader选举以外,还有Kafka集群本身Leader选举,这两个不是同一个东西,千万别搞混了。

题答案

Kafka首先会选择一个具有最新数据的副本作为新的Leader,也就是ISR集合中的副本

其中,ISR(In-Sync Replica)是指与Leader同步的副本集合,它们的数据同步状态与Leader最接近,并且它们与Leader副本的网络通信延迟最小。

如果ISR集合中没有可用的副本,Kafka会从所有副本中选择一个具有最新数据的副本作为新的Leader

在这种情况下选举出来的Leader,由于和原来老的Leader节点的数据存在较大的延迟,会造成数据丢失的情况

所以Kafka设计者把这个功能开关的选择交给了开发者,如果愿意接受这种情况,可以通过unclean.leader.election.enable参数来设置

开启之后然会造成数据丢失,但是至少可以保证依然能对外提供服务,保证了可用性。

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值