实用指南:Kafka的一条消息的写入和读取过程原理介绍

Apache Kafka 是一个分布式流处理平台,其核心设计围绕高吞吐、低延迟和可扩展性。以下是 Kafka 中一条消息的写入和读取过程的原理详解:


一、消息写入过程(Producer → Broker)

1. 生产者发送消息
  • 分区选择

    • Producer 根据 Topic 的分区策略(如轮询、哈希键、自定义)将消息发送到某个 Partition。

    • 若指定了 key,则通过哈希算法确定 Partition,保证相同 Key 的消息分配到同一分区。

  • 序列化与压缩

    • 消息(Key 和 Value)被序列化(如 Avro、JSON),可选压缩(Snappy、GZIP)以减少网络开销。

2. Broker 处理写入请求
  • 写入 Leader 副本

    • Producer 向 Partition 的 Leader Broker 发送消息(通过 ZooKeeper 或 Metadata 缓存获取 Leader 信息)。

    • Leader 将消息以顺序追加(Append-Only)的方式写入本地 Log Segment(物理日志资料)。

  • 副本同步(ISR 机制)

    • Leader 将消息同步到所有 In-Sync Replicas (ISR) 的 Follower 副本,

posted @ 2025-08-16 13:30  yfceshi  阅读(20)  评论(0)    收藏  举报