← Just notes

Kafka 基础架构解析

原创 · · 2 min read
#Kafka#消息队列#分布式系统#中间件
目录

Kafka 基础架构解析:基于 KRaft 模式的组件与概念

Apache Kafka 是一个强大的分布式流处理平台,因其高吞吐量、低延迟和可扩展性而被广泛用于实时数据处理、日志聚合和事件驱动系统。自 Kafka 2.8 引入 KRaft(Kafka Raft)模式后,ZooKeeper 被移除,架构变得更简洁高效。本篇博客将基于 KRaft 模式,详细介绍 Kafka 的核心组件和关键概念,包括 Topic、Partition、Replica、Offset 等及其作用。

Kafka 的核心概念

在讲解组件之前,先从 Kafka 的基本概念入手,这些是理解其架构的关键。

1. Topic(主题)

2. Partition(分区)

3. Replica(副本)

4. Topic Offset(主题偏移量)

5. Consumer Offset(消费者偏移量)

6. Producer(生产者)

7. Consumer(消费者)和 Consumer Group(消费者组)


Kafka 的核心组件(KRaft 模式)

KRaft 模式通过 Raft 共识协议替代了 ZooKeeper,简化了元数据管理和控制器选举。下面是 Kafka 在 KRaft 模式下的核心组件及其作用。

1. Broker(代理节点)

2. Controller(控制器)

3. Partition Leader 和 Follower(分区领导者和跟随者)

4. Log(日志)


KRaft 模式下的工作流程

  1. 消息写入
    生产者将消息发送到 Topic 的某个分区,写入 Leader 的日志,Follower 异步复制。

  2. 元数据管理
    控制器更新元数据(如新增 Topic 或分区分配),写入 __cluster_metadata Topic,所有 Broker 同步。

  3. 消费过程
    消费者订阅 Topic,从分区 Leader 读取消息,并提交 Consumer Offset 到 __consumer_offsets

  4. 故障恢复
    当 Leader 故障,Raft 协议选举新的 Leader;当消费者故障,消费者组重新分配分区。


为什么选择 KRaft 模式?


总结

Kafka 在 KRaft 模式下通过 Broker、Controller 和日志等组件,以及 Topic、Partition、Replica、Offset 等概念,构建了一个高效的分布式系统。Topic 组织数据,Partition 和 Replica 提供扩展性和容错,Offset 保证顺序性和消费追踪。理解这些元素,能帮助你更好地设计 Kafka 应用,无论是日志管道还是实时流处理。

← MVCC 返回首页 CDN 缓存 →