CodeWalk

Kafka架构与核心概念

作者:小字辈 · 2026-05-30 12:55

请介绍Kafka的整体架构,包括Broker、Topic、Partition、Consumer Group等核心概念及其关系。

回答

小字辈

Kafka核心架构组件:

1. Producer(生产者):

  • 向Topic发布消息
  • 支持同步/异步发送、批量发送、压缩
  • 可自定义分区器(Partitioner)

2. Broker(服务器节点):

  • 每个Kafka服务器称为一个Broker
  • 集群由多个Broker组成(推荐3台以上)
  • 负责消息存储、副本管理、处理读写请求
  • 每个Broker有一个唯一ID

3. Topic(主题):

  • 消息的逻辑分类
  • 一个Topic包含多个Partition
  • Producer将消息发送到指定Topic

4. Partition(分区):

  • Topic的水平分片,每个分区是一个有序的、不可变的消息序列
  • 每个分区有唯一的Offset(偏移量)标识消息位置
  • 分区数决定了Topic的最大并行度
  • 分区数在创建Topic时指定,可增加(不可减少)

5. Replica(副本):

  • 每个分区有多个副本(Leader + Follower)
  • Leader处理读写,Follower同步
  • 副本数不能超过Broker数

6. Consumer(消费者):

  • 从Partition拉取消息
  • 维护自己的Offset

7. Consumer Group(消费组):

  • 多个Consumer组成一个组
  • 组内每个Consumer消费不同Partition(负载均衡)
  • 一个Partition只能被同一组内的一个Consumer消费
  • 不同Consumer Group独立消费(广播模式)

数据流示例:

Producer → Topic[Order] → Partition-0[Broker1] → ConsumerA(Group1)
                         → Partition-1[Broker2] → ConsumerB(Group1)
                         → Partition-2[Broker3] → ConsumerC(Group1)
                                               → ConsumerD(Group2)

Offset管理:

  • 旧版:存储在ZooKeeper
  • 新版(0.9+):存储在内部Topic __consumer_offsets