当前位置: 首页 > news >正文

Kafka 高可用机制:Broker集群、分区副本、Leader与ISR

Kafka 高可用不是简单地“多部署几台机器”。真正让 Kafka 在节点故障后继续服务的是 Broker 集群、Partition 副本、Leader/Follower 复制和 ISR 机制。

一句话概括:Kafka 一个集群由多个 Broker 组成,一个 Topic 拆成多个 Partition,每个 Partition 有多个副本,其中一个 Leader 对外读写,其余 Follower 复制数据;Leader 故障后优先从 ISR 中选出新的 Leader。

Kafka Cluster

Broker 1

Broker 2

Broker 3

P0 Leader

P0 Follower

P0 Follower

ISR

Broker 集群

Kafka 服务端由多个 Broker 进程组成。一个 Broker 挂了,其他 Broker 仍然可以对外提供服务。

Producer

Broker 1

Broker 2

Broker 3

Consumer

但 Broker 集群只是高可用基础。如果某个 Partition 只有一个副本,副本所在 Broker 挂了,这个分区仍然不可用。所以还需要分区副本机制。

分区副本机制

一个 Topic 可以有多个 Partition,每个 Partition 又可以有多个 Replica。

Topic: order-events

P0

P1

P2

P0 Leader on Broker1

P0 Follower on Broker2

P0 Follower on Broker3

每个分区副本中会选出一个 Leader,其他副本是 Follower。

角色作用
Leader对外处理生产和消费请求
Follower从 Leader 拉取数据,保持副本同步

正常情况下,生产者和消费者都和 Leader 交互,Follower 负责复制数据。

Leader 故障后怎么恢复

如果 Leader 所在 Broker 故障,Kafka 会从 Follower 中选出新的 Leader。

Kafka ControllerFollower 2Follower 1P0 LeaderKafka ControllerFollower 2Follower 1P0 LeaderLeader 故障检查是否在 ISR检查是否在 ISR选为新 Leader

这个过程保证了单个 Broker 故障时,分区仍然有机会继续对外服务。

ISR 是什么

ISR 是in-sync replicas,表示和 Leader 保持同步的副本集合。

课件里把副本分成两类:

类型含义
ISR 副本与 Leader 同步较及时,优先参与选主
普通副本落后较多,不能优先保证数据完整

Leader 故障时,Kafka 会优先从 ISR 中选出新的 Leader,因为 ISR 中的副本数据更接近 Leader。

没有

Leader 故障

ISR 中是否有可用副本

从 ISR 选新 Leader

只能从其他副本选或等待恢复

尽量保证数据不丢

可能牺牲一致性或可用性

高可用和可靠性参数的关系

Kafka 高可用和消息可靠性经常一起考。

机制或参数作用
多 Broker避免单点服务不可用
多 Partition提供并行能力,也便于分散到不同 Broker
多 Replica分区数据多副本保存
ISRLeader 故障时优先选同步副本
acks=all等 ISR 副本确认后再向生产者返回成功

如果只有副本但生产者使用acks=1,Leader 收到消息后就返回成功,随后 Leader 宕机且 Follower 还没同步完成,消息仍然可能丢。所以高可靠通常要把副本机制和acks=all放在一起说。

面试回答模板

可以这样答:

Kafka 高可用可以从集群和复制机制两个层面回答。集群层面,一个 Kafka 集群由多个 Broker 组成,某台 Broker 宕机后,其他 Broker 仍然可以对外服务。复制层面,一个 Topic 会拆成多个 Partition,每个 Partition 可以配置多个副本,其中一个是 Leader,负责读写请求,其他是 Follower,从 Leader 同步数据。Leader 所在 Broker 宕机后,Kafka 会优先从 ISR,也就是和 Leader 保持同步的副本集合中选出新的 Leader,从而保证容错和高可用。为了提高消息可靠性,生产者通常还会配置acks=all,让 ISR 副本都确认保存后再返回成功。

小结

Kafka 高可用的主线是:

多 Broker

多分区

多副本

Leader/Follower

ISR 优先选主

把 Broker、Partition、Replica、Leader、ISR 的关系讲清楚,高可用这题就不会散。

http://www.zskr.cn/news/1422875.html

相关文章:

  • CTF和护网都搞不懂,还学什么网安?
  • 避坑指南:IfcOpenShell处理IFC4与IFC2X3版本时,编译和代码兼容性要注意什么?
  • IEEE论文排版进阶:5个LaTeX‘黑魔法’让你的图表公式更专业
  • 告别环境配置烦恼:保姆级教程带你用Arduino IDE 2.x搞定ESP32开发环境(Windows版)
  • Kafka 数据存储与清理机制:Topic、Partition、Segment与日志删除
  • 上海经济纠纷执行律师事务所推荐榜:商事执行胜诉前十 - 品牌2026
  • CANFD报文发送总失败?可能是BRS和FDF这两个关键属性没搞懂(CANoe/CAPL实战)
  • ESP32人脸识别项目避坑指南:MTMN模型参数调优实战(附完整配置代码)
  • 太仓定制柜子工厂哪家好?2026年5月选择参考 - 小李说家居
  • 6-8 封装检测当天是否可以签到(持久层)
  • 拒绝格式返工!paperxie 智能排版,让毕业论文格式一次性过审
  • 飞书文档转换终极指南:如何用Go语言实现高效文档迁移
  • 电路设计入门:从零开始制作可调光LED台灯
  • 终极免费跨平台字体解决方案:PingFangSC字体完整指南
  • DIY高功率线性执行器:从3D打印到双电机驱动的完整制作指南
  • 别再为PCB和散热器文件发愁了!手把手教你用ADS导出DWG文件给工厂(附单位转换避坑指南)
  • Unlock-Music终极指南:5分钟解锁所有加密音乐格式,重获音乐自由
  • 终极Windows热键冲突解决方案:hotkey-detective完整使用指南
  • 新手也能懂:用严恭敏PSINS工具箱跑通SINS/GPS松组合仿真(附完整代码解读)
  • ESP32-CAM复古相机实战:从硬件选型到固件开发的嵌入式系统设计
  • Lindy控制器突然离线?紧急响应手册(含SSH底层日志提取指令、MQTT重连心跳调试模板、OTA回滚密钥)
  • 微信聊天记录永久保存实战指南:WeChatMsg高效方案深度解析
  • 如何轻松掌控你的微信聊天数据:WeChatMsg完全使用指南
  • Qwen-Scope SAE-Res-Qwen3.5-27B-W80K-L0_100:解密大语言模型内部机制的可解释性工具
  • 抖音批量下载终极指南:5分钟快速上手,一键获取用户主页全作品
  • 三分钟快速上手:AsrTools语音转文字工具终极指南
  • 探索视觉叙事新维度:Qwen-Edit-2509多角度镜头控制技术完全指南
  • Windows网络诊断利器:ipconfig命令从原理到实战全解析
  • Qt6多线程架构:构建高性能视频处理界面的终极指南
  • 创客教育实践:电路设计如何与生活场景融合创新