目录
- 一、分区的分配以及再平衡
- 1.1、消费者分区及消费者组的概述
- 1.2、如何确定哪个consumer来消费哪个partition的数据
- 1.3、消费者分区分配策略
一、分区的分配以及再平衡
1.1、消费者分区及消费者组的概述
- 一个consumer group中有多个consumer组成,一个 topic有多个partition组成。
1.2、如何确定哪个consumer来消费哪个partition的数据
-
Kafka有四种主流的分区分配策略: Range、RoundRobin、Sticky、CooperativeSticky。
-
可以通过配置参数partition.assignment.strategy,修改分区的分配策略。默认策略是Range + CooperativeSticky。Kafka可以同时使用多个分区分配策略。
1.3、消费者分区分配策略
参数名称 | 描述 |
---|---|
heartbeat.interval.ms | Kafka 消费者和 coordinator 之间的心跳时间, 默认 3s。该条目的值必须小于 session.timeout.ms,也不应该高于session.timeout.ms 的 1/3。 |
session.timeout.ms | Kafka 消费者和 coordinator 之间连接超时时间, 默认 45s。超过该值,该消费者被移除,消费者组执行再平衡。 |
max.poll.interval.ms | 消费者处理消息的最大时长, 默认是 5 分钟。超过该值,该消费者被移除,消费者组执行再平衡。 |
partition.assignment.strategy | 消 费 者 分 区 分 配 策 略 , 默 认 策 略 是 Range +CooperativeSticky。Kafka 可以同时使用多个分区分配策略。可 以 选 择 的 策 略 包 括 : Range 、 RoundRobin 、 Sticky 、CooperativeSticky |