栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Kafka的rebalance机制

Kafka的rebalance机制

这是针对Kafka的消费者的机制,以下场景将发生rebalance:

  • 消费者组新增消费实例或者有消费实例退出group;
  • group消费超时;
  • group订阅的topic个数发生变化;
  • group订阅的topic的分区个数发生变化;

当rebalance时,所有消费实例会先发起 ApiKeys.FIND_COORDINATOR请求获取coordinator (这个coordinator是消费组名称hash对__consumer_offsetst这个topic的分区个数进行取余,然后获取分区的leader所在broker作为coordinator)。

然后消费者获取到coordinator或将向coordinator发起 ApiKeys.JOIN_GROUP请求加入消费组,在coordinator中会选出一个consumer作为消费组的leader消费者,把成员信息和leader信息返回到个消费者实例中,消费实例根据角色判断是否是leader。

如果是leader,则负责为整个消费组中的消费者分配应该消费哪些分区,然后发送ApiKeys.SYNC_GROUP请求,把分配策略同步到coordinator。

如果是follower,则直接发起一个ApiKeys.SYNC_GROUP请求到coordinator,获取自己分配到的topic分区。

那么在rebalance中,如果解决重复提交消费点位和重复消费的问题呢?这里面主要是用了一个generationId,这时一个递增的数字,和epoch有点像。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/345433.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号