Kafka 入门到起飞系列 - 怎么从ISR中选出的Leader呢? Leader选举机制

上文我们讲了分区分成Leader 和 Follower两种角色,当Leader宕机后,会从ISR同步副本中选出一个分区作为leader分区继续工作,那么leader是怎么选出来的呢?

怎么从ISR中选出的Leader呢? Leader选举机制

比如有这么个分布情况,如下图

  • 分区P1 有3个副本,1 leader+2 follower,ISR是 0、1 ,OSR是2
  • 分区P2 有3个副本,1 leader+2 follower,ISR是 1、2,OSR是0
  • 分区P3 有3个副本,1 leader+2 follower,ISR是 0、1、2,OSR是空

Kafka 入门到起飞系列 - 怎么从ISR中选出的Leader呢? Leader选举机制_第1张图片

场景:

运行过程中P1 的Leader宕机了,那么直接从ISR中选出P1的Follower成为新的leader,如下图:
Kafka 入门到起飞系列 - 怎么从ISR中选出的Leader呢? Leader选举机制_第2张图片
我们可以看到Kakfa通过维护ISR动态列表来保证副本选举,只要leader挂掉了,就从ISR中随机选举一台作为leader,ISR利用率更高,只要ISR列表还有一个副本存活就可以继续提供服务

那如果ISR 全都挂掉了怎么办呢?OSR能不能用呢,也能,就是会造成数据丢失
可以通过参数unclean .leader.election.enable=true
即当ISR都不可用了可以从OSR中选举leader

你可能感兴趣的:(kafka,kafka,ISR,Leader选举)