kafka源码学习(三)消费者源码

写在前面

通过前面对producer、服务端源码的剖析,consumer很多地方和前面类似,这里简单概述即可kafka版本:kafka-0.10.0.1。

学习计划:四月份完成kafka源码的分析,也算对kafka的基础知识点有了简单的回顾。
五月份:回到Flink篇章,这次重点了解资源调度、webui等相关基本的知识点,目的为后面自己编写Flink代码,如何分析调优,观察执行情况准备;一个小的任务:Flink从kafka写入Redis,数据一致性保证的测试。

1、consumer 初始化

阶段 1:Find Group Coordinator
查找 Group Coordinator的方式:

  • 先根据消费组 groupid的 hash值计算它所应该在__consumer_offsets中的分区编号;
  • 找到对应的分区号后,再寻找此分区 leader所在的 broker节点,则此节点即为自己的
    Group Coordinator;
    注:注意这里是消费组的 groupid

阶段 2:join the group

  • 此阶段的重要操作之一:选举消费组的 leader
    虽然也是 hashMap,但是仍然是随机
  • 此阶段的重要操作之二:选举分区分配策略 (这个策略不知道是不是和kafka版本有关,笔者使用的是kafka-0.10.0.1,似乎是由leader节点决定
    最终选举的分配策略基本上可以被看作各个消费者支持的最多的策略ÿ
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值