4 个回答
kafka的topic分区分配策略有:
kafka 2.4.0 后的版本默认策略是 Range + ConnperaticeSticky
1、Range(Range 是对每个 topic 而言的,首先对同一个 topic 里面的分区按照序号排序,对消费者按照字母顺序排序,通过分区数 / 消费者数来决定每个消费者应该消费几个分区,如果除不尽,前面的消费者会多消费n(余数)个分区)
2、RoundRobin(RoundRobin 其实就是轮询分区,把所有的 partition 和所有的 consumer 列出来,按照 hashcode 进行排序,最后通过轮询的方式来分配 partition 给到各个消费者)
3、Sticky(Sticky是“粘性的”,可以理解为分配结果是带“粘性的”——每一次分配变更相对上一次分配做最少的变动(上一次的结果是有粘性的),其目标有两点:分区的分配尽量的均衡, 每一次重分配的结果尽量与上一次分配结果保持一致)
4、CooperaticeSticky
可以通过修改partition.asssignment.strategy
这个参数来进行调整。kafka 2.4.0 后的版本默认策略是 Range + ConnperaticeSticky
发布于:3个月前 (01-24) IP属地:四川省
我来回答
您需要 登录 后回答此问题!