本文主要是介绍Kafka3.0 副本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 副本基本信息
- Leader 选举流程
- Leader 和 Follower 故障处理细节
- Follower 故障处理细节
- Leader 故障处理细节
- 分区副本分配
副本基本信息
1)Kafka 副本作用:提高数据可靠性。
2)Kafka 默认副本 1 个,生产环境一般配置为 2 个,保证数据可靠性;太多副本会增加磁盘存储空间,增加网络上数据传输,降低效率。
3)Kafka 中副本分为:Leader 和 Follower。Kafka 生产者只会把数据发往 Leader,然后 Follower 找 Leader 进行同步数据。
4)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 副本同步时,延迟过多的副本。
Leader 选举流程
Kafka 集群中有一个 broker 的 Controller 会被选举为 Controller Leader,负责管理集群broker 的上下线,所有 topic 的分区副本分配和 Leader 选举等工作。
Controller 的信息同步工作是依赖于 Zookeeper 的。
Leader 和 Follower 故障处理细节
Follower 故障处理细节
Leader 故障处理细节
分区副本分配
如果 kafka 服务器只有 4 个节点,那么设置 kafka 的分区数大于服务器台数,在 kafka底层如何分配存储副本呢?
假如创建 16 分区,3 个副本
分区和副本分布的话,kafka会有自带的负载均衡功能,帮助我们更加平整均匀的分布。
这篇关于Kafka3.0 副本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!