flink kafka消费者如何处理kafka主题的rebalance

背景:

我们日常使用kafka客户端消费kafka主题的消息时,当消费者退出/加入消费者组,kafka主题分区数有变等事件发生时,都会导致rebalance的发生,此时一般情况下,如果我们不自己处理offset,我们不需要理会这个rebalance的,当rebalance完成后,每个消费者会从__consumer_offsets中获取每个消费者此时的消费偏移位置,继续进行消费,此时有可能会重复消费.

flink对于kafka的rebalance的处理

我们之前说的是正常的情况下rebalance后消费者会从__consumer_offsets中获取偏移位置进行消费,那么对于开启了检查点的flink来说有什么不一样呢?

由于flink只有在checkpoint完成后才会提交偏移到broker服务器,如果按照之前的理解,那么当rebalance发生时,消费者从__consumer_offsets中获取比偏移位置的话也就意味着这个值是上一个checkpoint提交的偏移值,如果顺着这个思路往下,kafka的偏移相当于重置到了上一个checkpoint的位置,那么按理来说其他的状态,比如键值分区状态也会重置到上一个检查点的状态,要不然flink就不能保证状态的一致性了,所以真相到底是什么?

源码追踪:

1.首先看一下flink的kafka consumer的代码:

2.其中reassignPartitions方法代码如下所示:

3.再来看看assign方法的注释:

有没有恍然大悟的感觉?flink中使用assign的方式执行这个任务算子消费的kafka分区,是不会触发rebalance操作的.

彩蛋:

那这样的话,比如当kafka新增了满足条件的主题或者正在监听的主题新增了分区,flink是怎么消费到的?

相关推荐
IT研究室24 分钟前
最新大数据毕业设计选题推荐-基于大数据的北京市招标公告数据分析与可视化-大数据-Spark-Hadoop-Bigdata
大数据·数据分析·课程设计
why-geo27 分钟前
从“会聊天”到“能办事”:Meta Muse与国内个人AI智能体的竞速赛
大数据·人工智能
howdoyoudo20260641 分钟前
当新案例冲击旧框架:分类系统的宿命与修正路径
大数据·网络·数据库·人工智能·安全·ai·分类
一隅论数智1 小时前
RDF(Resource Description Framework)介绍和使用举例(二)
大数据·人工智能·经验分享·笔记·学习·架构·政务
计算机毕业编程指导师1 小时前
【Python毕设选题推荐】基于Spark的国内主要农作物产量趋势分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·python·数据分析·spark·毕业设计·课程设计·农作物产量
计算机毕业编程指导师2 小时前
【Python毕设选题推荐】基于Spark的宫颈癌变光谱特征数据分析可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·计算机·spark·毕业设计·宫颈癌变
IT研究室2 小时前
最新大数据毕业设计选题推荐-基于大数据的城市生活气象指数分析与可视化-大数据-Spark-Hadoop-Bigdata
大数据·生活·课程设计
长三角智造观察4 小时前
中小制造ERP+MES选型避坑:对接集成VS原生一体化,深度对比TCO与落地痛点
大数据·人工智能·制造
Elastic 中国社区官方博客11 小时前
将你自己的密钥用于现有 Elastic Cloud 部署
大数据·数据库·elasticsearch·全文检索
红海云12 小时前
Jev:给智能系统做判断的模型
大数据·数据库·人工智能