Apache Kafka 架构
已于 2026年06月25日 10:14 修改
访问次数:0
Apache Kafka 架构技术文档
1. 概述
Kafka 是一种分布式发布-订阅消息系统,其核心设计目标是高吞吐、可扩展与高可用。其架构由数据存储层、控制管理层与消费模型三部分组成,通过分区(Partition)实现水平扩展,通过副本机制(Replica)实现容错,通过 ISR 机制实现一致性保障。
2. 架构分层

2.1 数据平面(Data Plane)
负责消息的写入、存储与读取,包括以下组件:
- Topic
- Partition
- Replica
- ISR
该层以日志追加(append-only log)方式存储数据,提供高吞吐能力。
2.2 控制平面(Control Plane)
负责集群元数据管理与协调,包括:
- Controller(Kafka 集群中被选举出的特殊 Broker)
主要职责:
- Partition Leader 选举
- Replica 状态管理
- ISR 维护
- Broker 故障检测与恢复
- 分区重分配
2.3 消费平面(Consumer Plane)
由 Consumer Group 构成,用于实现数据并行消费。
特性:
- 一个 Partition 在同一时刻仅能被一个 Consumer 消费
- Consumer 数量与 Partition 数量决定并行度
3. 核心组件定义
3.1 Broker
Broker 是 Kafka 集群中的运行节点,负责数据存储与请求处理。
职责包括:
- 存储 Partition 日志数据
- 处理 Producer 写入请求
- 处理 Consumer 读取请求
- 执行 Replica 同步
Broker 本身不保存全局元数据。
3.2 Topic
Topic 是消息的逻辑分类单元,用于对消息流进行业务划分。
特性:
- 不直接存储数据
- 由多个 Partition 组成
- 提供逻辑隔离能力
3.3 Partition
Partition 是 Topic 的物理存储单元,是 Kafka 中最小的并行与存储单位。
特性:
- 按 offset 顺序追加写入
- Partition 内保证有序性
- Partition 之间无全局顺序
- 可分布在不同 Broker 上
作用:
- 实现水平扩展
- 提供并行消费能力
3.4 Replica
Replica 是 Partition 的副本机制,用于实现数据高可用。
类型:
- Leader Replica:负责读写请求
- Follower Replica:负责数据同步
特性:
- Replica 分布在不同 Broker
- Leader 宕机时可进行切换
3.5 ISR(In-Sync Replicas)
ISR 表示与 Leader 保持同步状态的 Replica 集合。
判定条件:
- 与 Leader 数据延迟在允许范围内
- 在规定时间内完成日志同步
作用:
- 作为数据提交确认依据(ACK=all)
- 作为 Leader 选举候选集合
- 保证数据一致性与可靠性
3.6 Controller
Controller 是 Kafka 集群中的管理角色,由某个 Broker 选举产生。
职责:
- 管理 Partition Leader 分配
- 维护 ISR 状态
- 处理 Broker 上下线
- 执行 Partition Rebalance
说明: Controller 并非独立组件,而是 Broker 的一种运行角色。
4. 数据写入流程
- Producer 发送消息至 Topic
- 根据 key 或分区策略选择 Partition
- 写入 Partition Leader
- Follower Replica 同步数据
- ISR 更新同步状态
- 根据 ACK 策略返回写入结果
5. 数据消费模型
Consumer Group 机制如下:
- 一个 Partition 在同一时间仅分配给一个 Consumer
- Consumer 通过分区分配实现并行消费
- Consumer 数量影响整体消费吞吐能力
分配关系:
- Partition 数 ≥ Consumer 数:Consumer 并行提升
- Partition 数 < Consumer 数:部分 Consumer 空闲
6. 系统一致性机制
Kafka 通过以下机制保证一致性:
- Leader Replica 作为唯一写入口
- ISR 作为提交确认集合
- ACK=all 模式要求 ISR 全部确认
- Leader Failover 仅从 ISR 中选举
7. 高可用机制
Kafka 高可用能力依赖:
- Replica 多副本机制
- Leader 自动切换
- ISR 动态维护
- Controller 故障接管机制
8. 性能设计基础
Kafka 高性能来源于以下设计:
- 顺序磁盘写入(Sequential Append)
- Partition 并行化
- 批量发送与批量消费(Batch I/O)
- 零拷贝数据传输(Zero Copy)
- 页缓存(Page Cache)利用
9. 架构总结
Kafka 的整体架构由以下核心机制构成:
- 通过 Partition 实现数据分片与并行扩展
- 通过 Replica 实现数据冗余与高可用
- 通过 ISR 机制实现一致性控制
- 通过 Controller 实现集群级协调管理
- 通过 Consumer Group 实现消费侧水平扩展
评论(0)