Kafka 核心组件架构图

Producer API
消息生产者
序列化 · 分区策略 · 重试机制
← →
Consumer API
消息消费者
订阅 · 拉取 · 提交 Offset
Kafka Broker Cluster
Broker 0
Controller
Socket Server
网络层 · 接收/发送请求
Request Handler
请求队列 · 线程池处理
Log Manager
日志存储 · 分段 · 索引
Replica Manager
副本同步 · ISR 管理
Controller
Leader 选举 · 分区状态
Broker 1
Follower
Socket Server
网络层
Request Handler
请求处理
Log Manager
日志存储
Replica Manager
副本同步
Partition
Topic-P0
Broker 2
Follower
Socket Server
网络层
Request Handler
请求处理
Log Manager
日志存储
Replica Manager
副本同步
Partition
Topic-P1
ZooKeeper / KRaft (Kafka 3.x+)
集群协调 · 元数据存储 · Controller 选举 · 访问控制

📡 Socket Server

Acceptor Thread
监听连接,接受新连接
Processor Thread
处理网络 I/O,读写请求

📝 Log Manager

Log Segment
日志分段,默认 1GB/段
Offset Index
物理偏移索引,快速定位
Time Index
时间戳索引

🔄 Replica Manager

Leader Replica
处理所有读写请求
Follower Replica
拉取同步 Leader 数据
ISR
In-Sync Replicas 同步副本集

🎮 Controller

Leader Election
分区 Leader 选举
Partition Reassignment
分区重分配
Broker Registration
Broker 上下线感知

📊 Consumer Coordinator

Group Management
消费者组管理
Partition Assignment
分区分配策略
Offset Commit
消费进度提交

🛡️ Security (可选)

SSL/TLS
传输加密
SASL
身份认证
ACL
权限控制

消息写入流程

1
元数据请求
Producer 向任意 Broker 获取 Topic-Partition 的 Leader 位置
2
发送消息
直接发送消息到对应 Partition Leader
3
写入 Log
Leader 写入本地 Log,返回 ACK
4
同步副本
Follower 拉取数据同步
5
确认完成
ISR 确认后,Producer 收到 ACK