Kafka分配分区过程

当消费者要加入群组时,它会向担任群组协调器的broker发送一个JoinGroup请求。第一个加入群组的消费者将成为“群主”。群主从协调器那里获得群组的成员列表(列表中包含了所有最近发送过心跳的消费者,它们被认为是活跃的),并负责给每一个消费者分配分区。群主使用一个实现了PartitionAssignor接口的分类来决定哪些分区应该被分配给哪些消费者。

Kafka内置了两种分配分区的策略:

Rang:把主题的若干个连续分区分配给消费者。当分区数量无法被消费者数量整除时,先加入群组的消费者会分配到更多的分区。

RoundRobin:把主题的所有分区逐个分配给消费者。RoundRobin策略会给所有消费者分配相同数量的分区(或者最大就差一个分区)。

可以通过partion.assignment.strategy来配置,默认使用实现了Range策略的org.apach.kafka.clients.consumer.RangeAssignor,也可以指定org.apach.kafka.clients.consumer.RoundRobinAssignor,还可以使用自定义策略。

分配完毕后,群主会把分配情况列表发给群主协调器,协调器在把这些信息发给所有消费者。每个消费者只能看到自己的分配消息,只有群主知道群组里所有消费者的分配信息。这个过程会在每次再均衡时重复发生。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值