kafka的架构和工作原理

发布于:2025-02-13 ⋅ 阅读:(147) ⋅ 点赞:(0)

目录

Kafka 架构

Kafka 工作原理

Kafka 数据流

Kafka 核心特性

总结

Kafka 架构

1. 生产者(Producer)

2. 消费者(Consumer)

3. 主题(Topic)

4. 分区(Partition)

5. 副本(Replica)

6. 代理(Broker)

7. ZooKeeper(旧版本)/KRaft(新版本)

Kafka 工作原理

1. 消息生产

2. 消息存储

3. 消息消费

4. 领导者选举

5. 集群协调


Kafka 架构

Kafka 是一个分布式流处理平台,核心架构包括以下组件:

  1. Producer(生产者)

    • 负责将消息发布到 Kafka 的 Topic 中。

  2. Consumer(消费者)

    • 从 Topic 订阅并消费消息。

  3. Broker(服务器)

    • Kafka 集群中的每个节点都是一个 Broker,负责消息的存储和转发。

  4. Topic(主题)

    • 消息的逻辑分类,生产者将消息发送到特定 Topic,消费者从 Topic 订阅消息。

  5. Partition(分区)

    • 每个 Topic 可以分为多个 Partition,分区是 Kafka 并行处理的基本单位,每个分区是一个有序、不可变的消息序列。

  6. Replica(副本)

    • 每个 Partition 可以有多个副本,分布在不同的 Broker 上,确保数据的高可用性和容错性。

  7. Leader 和 Follower

    • 每个 Partition 有一个 Leader 副本和多个 Follower 副本,Leader 负责处理读写请求,Follower 从 Leader 同步数据。

  8. Zookeeper

    • 用于管理 Kafka 集群的元数据、Broker 状态、Leader 选举等。


Kafka 工作原理

  1. 消息发布

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

  2. 消息存储

    • 消息以追加(Append)的方式写入 Partition 的日志文件(Log Segment),Kafka 不会修改或删除已写入的消息。

  3. 消息复制

    • Leader Partition 将消息复制到所有 Follower Partition,确保数据冗余和高可用性。

  4. 消息消费

    • Consumer 从 Partition 拉取消息,每个 Consumer 属于一个 Consumer Group,组内的 Consumer 共同消费一个 Topic 的消息,每个 Partition 只能被组内的一个 Consumer 消费。

  5. Offset 管理

    • Consumer 通过 Offset 记录消费进度,Kafka 将 Offset 存储在内部 Topic(__consumer_offsets)中,确保消费状态可恢复。

  6. 日志清理

    • Kafka 提供两种日志清理策略:

      • 日志删除(Log Retention):根据时间或大小删除旧数据。

      • 日志压缩(Log Compaction):保留每个 Key 的最新值,适用于 Key-Value 场景。

  7. 高可用性

    • 通过副本机制和 Leader 选举实现高可用性。如果 Leader 失效,Zookeeper 会从 ISR(In-Sync Repl


网站公告

今日签到

点亮在社区的每一天
去签到