kafka消费者groupcoordinator原理

本文探讨了Kafka中GroupCoordinator的角色,包括其在消费者组选择、协调交互过程中的功能,并提供了相应的源码解析链接。
摘要由CSDN通过智能技术生成

什么是coordinator

每个consumer group都会选择一个 broker 作为自己的coordinator
它是负责监控这个消费者组里的各个消费者的心跳,以及判断是否消费者宕机了
如果其中一个消费者判断为宕机,会进行rebalance

消费者组如何选择coordinator机器

1. 确定由 __consumer_offsets 位移主题的哪个分区来保存该 Group 数据:partitionId=Math.abs(groupId.hashCode() % offsetsTopicPartitionCount)。
2. 找出该分区 Leader 副本所在的 Broker,该 Broker 即为对应的 Coordinator。

假设有消费者组A,首先对 groupId 进行hash得到一个数字假设为8,接着对 __consumer_offsets 的分区数量(默认为50,可以通过offsets.topic.num.partitions设置)这个值进行取模,取模后得到数字为: 8 % 50 = 8。
查看 __consumer_offsets 这个主题的8号分区 leader 副本在哪台 broker 上面,那一台 broker 就是 coordinator

消费者如何与coordinator交互

1. 每个consumer都发送JoinGroup请求到coordinator

2. coordinator从consumer group中选择一个consumer作为leader

3. 将要消费的topic情况发送给这个leader

4. leader负责制定消费方案

5. 通过SyncGroup把消费方案发给coordinator

6. c
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值