4-Kafka-partition(分区)概念

Kafka Topic 分区详解

📌 一、分区核心概念

1. 什么是分区?

  • 物理分片:Topic 被划分为多个分区(Partition),每个分区是一个有序、不可变的消息序列
  • 存储单位:每个分区对应一个物理日志文件,存储在 Kafka Broker 上
  • 并行基础:分区是 Kafka 实现并行处理水平扩展的基础单元

如下:有三台kafka集群,cnbook 主题有三个分区,这三个分区分别位于不同的 broker

2. 分区核心特性

特性说明
消息有序性分区内有序:同一分区中的消息按写入顺序存储
跨分区无序:不同分区的消息顺序不保证
数据持久化每个分区对应磁盘上的日志文件(.log)和索引文件(.index
并行消费能力消费者组中不同消费者可同时消费不同分区
水平扩展能力通过增加分区数提升 Topic 吞吐量

3. 分区存储结构

📌 关键点:分区是 Kafka 并行处理的最小单位,也是数据持久化的物理载体


⚙️ 二、分区工作原理

1. 消息写入流程

生产者通过 Partitioner(Kafka Partitioner 是用于将消息分配到不同分区的组件,主要用于在发送消息时确定消息的目标分区) 决定消息写入的目标分区,策略包括:

策略触发条件规则
指定分区明确指定分区号直接写入指定分区
Key 哈希消息携带 Key按 hash(key) % 分区数 选择分区,确保相同 Key 的消息进入同一分区
轮询(默认)无分区号且无 Key依次轮询所有分区,保证数据均匀分布

2.分区与消费者

  • 消费者组(Consumer Group):
    一个 Partition 只能被组内一个 Consumer 消费,实现并行处理
    消费者数量 ≤ Partition 数量,否则多余消费者闲置
    即:同组内消费者竞争消费一条消息,没有消费到消息的消费者闲置,不同组内的消费者可以同时消费某一条消息

参考:deepseek
B站项桦瑾Kafka介绍

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值