为什么几乎所有日志系统,最后都选了 Kafka?
——从架构本质到生产实战的终极解析
结论先行: Kafka 被广泛用于日志系统,不是因为“性能最好”, 而是因为它是唯一一个把「日志」当作核心数据结构来设计的系统。
RocketMQ 很优秀,但在日志采集与日志管道这个场景中,Kafka 几乎成为事实标准。这背后不是流行趋势,而是设计哲学 + 架构模型 + 实战演进的必然结果。
一、先说清楚:日志 ≠ 消息
这是 90% 选型争议的根源。
日志的本质是什么?
日志是:可长期保存、可反复消费、可回放的数据资产
日志系统真正关心的不是:
- ❌ 消息有没有被某个消费者确认
- ❌ 消息是否 exactly-once
而是:
- ✅ 能不能存 7 天 / 30 天 / 90 天
- ✅ 能不能从任意时间点重放
- ✅ 新系统能不能直接吃历史数据
二、Kafka 与 RocketMQ 的根本差异(再次点题)
| 维度 | Kafka | RocketMQ |
|---|---|---|
| 核心抽象 | 分布式日志(Log) | 消息(Message) |
| 设计目标 | 高吞吐 + |