Kafka8:Kafka分区策略

Kafka8:Kafka分区策略

1. Kafka分区的好处

  1. 便于合理使用存储资源,每个Partition在一个Broker上存储,可以把海量的数据按照分区切割成一块一块数据存储在多台Broker上。合理控制分区的任务,可以实现负载均衡的效果。
  1. 提高并行度,生产者可以以分区为单位发送数据;消费者可以以分区为单位进行消费数据
notion image

2. 生产者发送消息的分区策略

  1. 指明 partition 的情况下,直接将指明的值直接作为 partiton 值;
  1. 没有指明 partition 值但有 key 的情况下,将 key 的 hash 值与 topic 的 partition 数进行取余得到 partition 值;
  1. 既没有 partition 值又没有 key 值的情况下, kafka采用Sticky Partition(黏性分区器),会随机选择一个分区,并尽可能一直使用该分区,待该分区的batch已满或者已完成,kafka再随机一个分区进行使用.(以前是一条条的轮询,现在是一批次的轮询)
 
 

3. 消费者分区策略