Kafka有几种消费者分区分配策略?

news/2024/10/31 1:22:45/

Range范围分配策略

Range范围分配策略是Kafka默认的分配策略,它可以确保每个消费者消费的分区数量是均衡的。

注意:Rangle范围分配策略是针对每个Topic的。

配置

配置消费者的partition.assignment.strategy为org.apache.kafka.clients.consumer.RangeAssignor。

算法公式

n = 分区数量 / 消费者数量

m = 分区数量 % 消费者数量

前m个消费者消费n+1个

剩余消费者消费n个

1667209460913_范围分配策略.png

1667209492469_范围.png

RoundRobin轮询策略

RoundRobinAssignor轮询策略是将消费组内所有消费者以及消费者所订阅的所有topic的partition按照字典序排序(topic和分区的hashcode进行排序),然后通过轮询方式逐个将分区以此分配给每个消费者。

配置

配置消费者的partition.assignment.strategy为org.apache.kafka.clients.consumer.RoundRobinAssignor。
1667209579973_范围份额皮.png

Stricky粘性分配策略

从Kafka 0.11.x开始,引入此类分配策略。主要目的:

  1. 分区分配尽可能均匀

  2. 在发生rebalance的时候,分区的分配尽可能与上一次分配保持相同没有发生rebalance时,Striky粘性分配策略和RoundRobin分配策略类似。

1667209633388_粘性分配策略.png

上面如果consumer2崩溃了,此时需要进行rebalance。如果是Range分配和轮询分配都会重新进行分配,例如:

1667209690362_粘性分配测略2.png

通过上图,我们发现,consumer0和consumer1原来消费的分区大多发生了改变。接下来我们再来看下粘性分配策略。

粘性分配策略

我们发现,Striky粘性分配策略,保留rebalance之前的分配结果。这样,只是将原先consumer2负责的两个分区再均匀分配给consumer0、consumer1。这样可以明显减少系统资源的浪费,例如:之前consumer0、consumer1之前正在消费某几个分区,但由于rebalance发生,导致consumer0、consumer1需要重新消费之前正在处理的分区,导致不必要的系统开销。(例如:某个事务正在进行就必须要取消了)


http://www.ppmy.cn/news/281977.html

相关文章

MR 用两步计算 GI

第一步,光源发射很小的并带有能量的小包裹 ( 我们叫它光子 (photons)) 发射到场景中。我们 要追踪这些光子在场景中反弹的路线。其中一些光子会被物体吸收或被反弹到无限远的空间 里。当光子与一个物体相撞,它可以被反射,发射或吸收。当一个…

Java 异常处理和最佳实践(含案例分析)

概述 最近在代码 CR 的时候发现一些值得注意的问题,特别是在对 Java 异常处理的时候,比如有的同学对每个方法都进行 try-catch,在进行 IO 操作时忘记在 finally 块中关闭连接资源等等问题。回想自己对 java 的异常处理也不是特别清楚&#x…

华为交换机抓包

1.登录交换机,找一个合适的空闲端口,作为观察口(观察口的端口速率至少与镜像口持平)#observing-port 1 interface GigabitEthernet 0/0/6 (将G0/0/6作为观察口,编号为3) 全局下: 2.进入异常流量…

华为交换机堆叠配置

CE68系列: 完成交换机A堆叠配置 system-view sysname SwitchA stack stack member 1 priority 150 stack member 1 domain 10 quit commit 业务口加入堆叠组 interface stack-port 1/1 port member-group interface 40ge 1/0/1 to 1/0/2 y quit commit 配置后重…

华为交换机配置(一)

前置条件:交换机功能正常但前期使用情况不明,需要重置再进行使用。 准备条件: 物料准备:华为交换机配置PCconsole线USB转串口线电源线网线1根 软件准备:USB转串口驱动Xshell等远程仿真终端工具 配置步骤&#xff1a…

华为二层交换机配置命令详解

配置交换机,从基础开始。 以下是配置的交换机命令。(HUAWEI S3000) 本人认为有五个步骤是重点(红色字体) 配置过程(// 后面为注释) 1.改变中文模式 language-mode chinese //习惯英语的可以不用…

华为设备三层交换机与路由器对接上网

1.配置LSW1 (1)配置连接用户的接口和对应的VLANIF接口 [LSW1]vlan batch 10 20 [LSW1-GigabitEthernet0/0/1]port link-type access [LSW1-GigabitEthernet0/0/1]port default vlan 10 [LSW1-GigabitEthernet0/0/2]port link-type access [LSW1-GigabitE…

华为交换机基础命令

原文链接:https://blog.csdn.net/chen3888015/article/details/126415631 案例1:华为交换机根据IP查他对应的MAC地址和交换机端口 设备 核心交换机: 华为S5735S-S24T4S-A VRP software, Version 5.170 (S5735 V200R019C10SPC500) 接入层交…