1. 副本基本信息
- Kafka 副本作用:提高数据可靠性 。
- Kafka 默认副本 1 个,生产环境一般配置为 2 个,保证数据可靠性;太多副本会增加磁盘存储空间,增加网络上数据传输,降低效率。
- Kafka 中副本分为: Leader 和 Follower 。 Kafka 生产者只会把数据发往 Leader,然后 Follower 找 Leader 进行同步数据。
- Kafka 分区中的所有副本统称为 AR (Assigned Repllicas )。
AR=ISR+ OSR
ISR,表示 和 Leader 保持同步的 Follower 集合。 如果 Follower 长时间未向 Leader 发送通信请求或同步数据,则该Follower 将被踢出ISR。该时间阈值由
replica.lag.time.max.ms
参数设定,默认30s。Leader 发生故障之后,就会从ISR 中选举新的Leader。 OSR,表示Follower 与Leader 副本同步时,延迟过多的副本。
2. Leader选举流程
Kafka 集群中有一个broker 的Controller 会被选举为Controller Leader,负责管理集群broker 的上下线,所有topic 的分区副本分配和Leader 选举等工作。
Controller 的信息同步工作是依赖于Zookeeper 的。