Kafka

L1|架构哲学层(Why)——Kafka 要解决的根本问题

1. Kafka 的第一性原理

Kafka 的设计并非围绕“消息”本身,而是围绕一个更稳定的抽象:

分布式、可复制、可回放的提交日志(Distributed Commit Log)

由此推导出 Kafka 的核心目标:

2. Kafka 的五条架构公理

架构公理本质含义
日志即事实源数据一经写入即为事实,不可变更
顺序写优先用磁盘顺序 IO 换取极致吞吐
Leader 一致性简化复制模型,降低一致性复杂度
Pull-based 消费消费者掌控节奏,系统更稳定
存储与消费状态分离Offset 属于 Consumer,而非 Broker

后续所有机制,都是上述公理的工程化结果。


L2|核心抽象模型层(What)——Kafka 的稳定认知模型

3. 核心对象与边界划分

Kafka 的世界由三类对象构成:

  1. 数据抽象(Data Plane)

    • Topic
    • Partition
    • Log / Segment
  2. 复制与一致性抽象(Replication Plane)

    • Replica(Leader / Follower)
    • ISR
    • High Watermark
  3. 控制抽象(Control Plane)

    • Controller
    • State Machine
    • Leader Election

4. Topic / Partition / Log 的层级关系

关键认知:Kafka 的顺序保证仅存在于 单 Partition 内


5. 消费模型的本质

这使得 Kafka 天然支持:


L3|机制实现层(How)——从抽象到工程落地

6. 存储机制:Segment + 稀疏索引

6.1 分段日志(Segment)

6.2 稀疏索引的设计哲学

原则:空间优先,其次时间


7. PageCache / mmap / 零拷贝

Kafka 的高性能并非来自 JVM,而是来自 操作系统能力的极致利用

Kafka 本质上是一个 OS 友好型系统


8. 复制模型与一致性边界

8.1 Leader-Follower 模型

8.2 ISR 与 High Watermark

消费者永远只看到 已达成副本共识的数据


9. 状态机驱动的集群治理

Kafka 通过状态机避免分布式系统的“隐式状态”:

状态变更由 Controller 串行驱动,确保:


L4|控制与治理层(Operate)——系统如何长期稳定运行

10. Controller 的角色演进

核心职责不变


11. 可靠性语义与权衡

机制获得代价
replication.factor ↑容灾存储成本
acks=all强一致延迟
min.insync.replicas ↑数据安全可用性

Kafka 的可靠性是 可配置的工程权衡,而非绝对承诺。


12. 多集群与数据管道哲学

多集群并非为了“同步数据”,而是为了:

MirrorMaker / Connect / Streams 本质都是:

日志 → 日志的确定性变换


L5|选型边界与系统定位(Where)

13. Kafka 适合与不适合

适合不适合
事件流平台RPC 请求响应
高吞吐日志强事务系统
数据管道精准低延迟

14. Kafka 在数据平台中的位置

Kafka 通常扮演:

数据基础设施中的“事实时间轴”

而非业务消息中间件。


结语|如何正确“理解”Kafka

Kafka 的复杂度不在 API,而在其 对分布式现实的妥协与抽象

理解 Kafka,等同于理解:

关联内容(自动生成)