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是怎么消费到的?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/27130.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试题:HTTP Code码及应用场景分析

1xx 消息(临时响应) 属于临时相应,代表所发出的请求已经被接受,需要继续进行处理。只包含状态行和某些可选的响应头信息,并以空行结束。由于 HTTP/1.0 协议中没有定义任何 1xx 状态码,所以除非在某些试验条件下,服务器…

django处理分页

当数据库量比较大的时候一定要分页查询的 在django中操作数据库进行分页 queryset models.PrettyNum.objects.all() #查询所有 queryset models.PrettyNum.objects.all()[0:10] #查询出1-10列 queryset models.PrettyNum.objects.filter(mobile__contains136)[0:10] …

登陆校验解决前端success回调函数始终执行问题

有一串前端js登陆代码&#xff1a; sendRequest:function(){wx.request({url: http://localhost:8080/lf/login/2021/2021,method:POST,success:(res) > {console.log("测试通过")}})} 和后端代码&#xff1a; public Result<Students> logginById(PathVar…

python-opencv对极几何 StereoRectify

OpenCV如何正确使用stereoRectify函数 函数介绍 用于双目相机的立体校正环节中&#xff0c;这里只谈谈这个函数怎么使用&#xff0c;参数具体指哪些函数参数 随便去网上一搜或者看官方手册就能得到参数信息&#xff0c;但是&#xff01;&#xff01;相对关系非常容易出错&…

OpenAI将GPT-4设置为ChatGPT Plus付费用户的默认模型

OpenAI最近为ChatGPT引入了一系列新功能&#xff0c;这些更新旨在增强用户体验&#xff0c;提供更多指导和更多的功能。其中最显著的功能之一是将GPT-4设置为ChatGPT Plus付费用户的默认模型&#xff0c;这意味着付费订阅用户无需手动切换到其他公开可用的语言模型&#xff0c;…

机器学习深度学习——池化层

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位即将上大四&#xff0c;正专攻机器学习的保研er &#x1f30c;上期文章&#xff1a;机器学习&&深度学习——卷积的多输入多输出通道 &#x1f4da;订阅专栏&#xff1a;机器学习&&深度学习 希望文章对你们…

1. Git基础知识

文章目录 Git基础知识一、集中式与分布式二、中心服务器三、工作流四、分支实现五、冲突六、Fast forward七、储藏&#xff08;Stashing&#xff09;八、SSH 传输设置九、.gitignore 文件十、Git 命令一览十一、和远端仓库交互 Git基础知识 一、集中式与分布式 Git 属于分布式…

vue3+antd——实现App.vue页面实时获取权限+用户信息的功能——基础积累

之前写过一篇文章关于vue3antd的框架模板&#xff0c;链接如下&#xff1a;http://t.csdn.cn/9dZMS 1.App.vue代码 <template><ConfigProvider :locale"locale"><ThemeProvider is-root v-bind"themeConfig" :apply-style"false&quo…

【单片机】51单片机,晨启科技,板子引脚对应关系

一般引脚: sbit beepP2^4; //将单片机的P2.4端口定义为beep.本口用于屏蔽上电后蜂鸣器响 sbit ledP1^0; //将单片机的P1.0端口定义为led&#xff0c;用于点亮LED-D1 sbit DIG1P0^0; //数码管位选1 sbit DIG2P0^1; //数码管位选2P10xFF;//初始化P1引脚全部置高&a…

【第一阶段】kotlin的when表达式

1.Java 的if /when是语句 kotlin的if/when是表达式&#xff0c;表达式是有返回值的 java中void是个关键字&#xff0c;Unit在kotlin中是个类 2.当使用when语句的时候必须有一个不满足的值即else: fun main() {var week:Int5val info when(week){1->"今天是星期一"…

Transformer学习笔记

Transformer学习笔记 前言前提条件相关介绍Transformer总体架构编码器&#xff08;Encoder&#xff09;位置编码&#xff08;Positional Encoding&#xff09;get_attn_pad_mask函数&#xff08;Padding Mask&#xff09;EncoderLayerMultiHeadAttentionScaledDotProductAttent…

项目出bug,找不到bug,如何拉回之前的版本

1.用gitee如何拉取代码 本文为转载于「闪耀太阳a」的原创文章原文链接&#xff1a;https://blog.csdn.net/Gufang617/article/details/119929145 怎么从gitee上拉取代码 1.首先找到gitee上想要拉取得代码URL地址 点击复制这里的https地址 1 ps:&#xff08;另外一种方法&…

【React重点知识与代码案例】

React是当前最流行的JavaScript前端框架之一&#xff0c;以下是React重要的知识点和代码案例&#xff1a; 1.JSX语法&#xff1a;JSX是React用于描述UI的语法扩展&#xff0c;它允许在JavaScript代码中编写类HTML的代码。例如&#xff1a; const element <h1>Hello, wo…

xcode打包导出ipa

转载&#xff1a;xcode打包导出ipa 目录 转载&#xff1a;xcode打包导出ipa 第一步&#xff1a;注册苹果开发者账号 第二步&#xff1a;下载APP Uploader 第三步&#xff1a;使用xcode打包导出ipa文件&#xff0c;供其他人内测 众所周知&#xff0c;在开发苹果应用时需要使…

Leetcode31 下一个排列

解题思路&#xff1a; 算法过程的第二步&#xff0c;可以变为将[j,end]排序&#xff0c;然后从[j,end)和i进行比较&#xff0c;在区间j,end区间第一个大于nums[i]后&#xff0c;交换即可 public void nextPermutation(int[] nums) {int len nums.length - 1;for(int i len;i…

[SQL系列] 从头开始学PostgreSQL 分库分表

什么是分库分表 分库分表是一种数据库架构设计的方法&#xff0c;用于应对大规模数据的存储和查询。当单个数据库的存储容量或查询性能无法满足需求时&#xff0c;可以通过将数据分散存储在多个数据库服务器上&#xff0c;以提高系统的可扩展性和性能。 分库分表通常包…

【电机绘图】:插补算法(一)—直线插补—逐点比较法

今日介绍学习一种使用电机作画、绘图、加工零件时需要使用的算法 &#xff1a; 插补算法 本文提供直线插补的概念基础&#xff0c;基本思路分析&#xff0c;C语言实现等&#xff0c;代码会直接贴出&#xff01; 插补算法是指在数值计算或数据处理中&#xff0c;根据已有的数据…

单例模式(C++)

定义 保证一个类仅有一个实例&#xff0c;并提供一个该实例的全局访问点。 应用场景 在软件系统中&#xff0c;经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例&#xff0c;才能确保它们的逻辑正确性、以及良好的效率。如何绕过常规的构造器&#xff0c;提供一种…

智慧园区物流的资料--写标书参考

这是几个参考的 智慧物流园区信息平台建设规划方案 智慧物流园区信息化建设规划方案 - 百度文库 国家智慧物流园建设方案 国家智慧物流园建设方案 - 百度文库 智慧园区:建设实施方案 智慧园区建设实施方案 - 百度文库 智慧园区管理系统建设方案 智慧园区管理系统建设方案…

Babel编译与Webpack

目录 Babel初识BabelBabel 使用方式使用 Babel 前的准备工作 WebpackWebpack介绍Webpack初体验Webpack核心概念入口&#xff08;entry&#xff09;出口&#xff08;output&#xff09;加载 (loader)插件&#xff08;plugins&#xff09; Babel Babel官网: https://babeljs.io/…