Skip to content
All notes

Kafka

归纳 Kafka 的分区、有序性、消费语义和性能机制。

Kafka

为什么吞吐高

Kafka 使用追加日志和顺序 I/O,结合批量发送、批量拉取、压缩及操作系统页缓存,减少磁盘和网络开销。分区提供并行能力;适用的传输路径还能利用零拷贝减少数据复制。

怎么保证顺序

先定义有序的业务范围,例如同一订单或同一会话:

  1. 相同业务 key 路由到同一 partition;Kafka 不保证跨分区的全局顺序。
  2. 生产端配置幂等和适当的重试、并发参数,避免重试使消息乱序。
  3. 消费端按该顺序串行处理;拿到消息后再任意并发处理,仍可能打乱完成顺序。
  4. 业务处理保持幂等,避免重复消费造成重复修改。

全局有序会限制分区并行能力,通常只保证业务所需的局部顺序。