kafka-client-分区策略

分区分配策略

一个消费组内有多个消费者,一个topic有多个patition,所以消费者和partition是多对多的关系,kafka默认有以下三种分区分配策略

1.RangeAssignor

按照消费者总数和分区总数整除得到一个跨度,然后将分区按照跨度进行平均分配,当订阅多个topic时,每个topic分别计算

例如消费者c0,c1

topic有2个,分区分别为:

t0p0,t0p1,t0p2

t1p0,t1p1,t1p2

分配过程:

(1)分配topic:t0

c0: t0p0,t0p1

c1:t0p2

(2)分配topic:t1

c0:t0p0,t0p1,t1p0,t1p1

c1:t0p2,t1p2

如上,分配可能导致不均衡

2.RoundRobinAssignor

每个主题以轮询的方式分配,上面的例子分配如下:

c0:t0p0,t0p2,t1p1

c1:t0p1,t1p0,t1p2

当每个消费者订阅的主题不一致时,可能导致分配不均

(3)StickyAssignor

从0.11.0开始新增的分配策略

a.分区的分配尽可能均匀

b.当出现重分配的时候,分配尽可能和上次分配保持一致,减少分区移动

当a和b冲突时,以a为主

(4)自定义分区分配策略

2.4.0之前实现PartitionAssignor接口,2.4.0之后实现ConsumerPartitionAssignor

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值