请解释 Kafka 中的 Leader 和 Follower 角色,并阐述在副本机制中它们是如何分工与协作的?
考察说明
考察对 Kafka 副本机制核心概念及其协作原理的理解。
回答思路
- 【回答框架 1】Kafka 中每个分区有多个副本,其中一个为 Leader,其余为 Follower。Leader 负责处理所有读写请求,Follower 负责从 Leader 同步数据以保持副本一致。
- 【回答框架 2】Follower 定期向 Leader 发送 Fetch 请求拉取新消息,Leader 根据配置的副本同步策略(如 acks 设置)决定何时确认写入成功。在 ISR(In-Sync Replica)集合中的 Follower 才被认为是同步的。
- 【回答框架 3】当 Leader 发生故障时,控制器会从 ISR 中选择一个新的 Leader,优先选择同步程度最高的副本,以保证数据不丢失。旧 Leader 恢复后可能成为 Follower 并重新同步数据。
- 【回答框架 4】副本机制提供了数据冗余和高可用性,但会增加网络和存储开销。合理设置副本因子(如 3)可在容错与性能间取得平衡。
- 【关键点 1】Leader 处理所有读写,Follower 只同步数据。
- 【关键点 2】ISR 中的 Follower 才算同步副本。
- 【关键点 3】Leader 故障时从 ISR 中选举新 Leader。
- 【关键点 4】副本因子越大,冗余越强但开销越大。
- 【易错点 1】误以为所有副本都能提供读服务,实际上 Kafka 默认只允许 Leader 处理读写。
- 【易错点 2】忽略 ISR 机制而简单认为所有副本都同步。