kafka的消费者分区分配策略

kafka有三种分区分配策略

1.RoundRobin

2.Range

3.Sticky

一、RoundRobin

RoundRobin策略很简单~假设我们有三个Topic10个Partition,上图!

假设顺序为A-0,A-1,A-2...C-2

 不难看出轮询策略是将partition当做最小分配单位,将所有topic的partition都看作一个整体。然后为消费者轮询分配partition。当然得到此结果的前提是Consumer Group种的消费者订阅信息是一致的,如果订阅信息不一致,得到的结果也不均匀,下面举个例子:

 如图,Consumer0订阅Topic-A、B,Consumer1订阅Topic-B、C

顺序注意图中的Seq,先分配TopicA

第一轮 : Consumer-0: Topic-A-Partition0

由于Consumer-1没有订阅Topic-A,所以只能找到Topic-B给Consumer-1分配

于是 Consumer-1: Topic-B-Partition0

------------------------------------------------------------------------------------------------------

第二轮: Consumer-0: Topic-A-Partition0,Topic-A-Partition1

             Consumer-1: Topic-B-Partition0,Topic-B-Partition1

------------------------------------------------------------------------------------------------------

第三轮: Consumer-0: Topic-A-Partition0,Topic-A-Partition1,Topic-A-Partition2

             Consumer-1: Topic-B-Partition0,Topic-B-Partition1,Topic-B-Partition2

------------------------------------------------------------------------------------------------------

第四、五、六轮:

Consumer-0: Topic-A-Partition0,Topic-A-Partition1,Topic-A-Partition2

Consumer-1: Topic-B-Partition0,Topic-B-Partition1,Topic-B-Partition2,Topic-C-Partition-0,Topic-C-Partition-1,Topic-C-Partition-2

------------------------------------------------------------------------------------------------------

可以看到

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值