flink如何初始化kafka数据源的消费偏移

这篇具有很好参考价值的文章主要介绍了flink如何初始化kafka数据源的消费偏移。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

我们知道在日常非flink场景中消费kafka主题时,我们只要指定了消费者组,下次程序重新消费时是可以从上次消费停止时的消费偏移开始继续消费的,这得益于kafka的_offset_主题保存的关于消费者组和topic偏移位置的具体偏移信息,那么flink应用中重启flink应用时,flink是从topic的什么位置开始消费的呢?

flink对kafka主题消费偏移的处理

首先,当flink应用第一次启动时,flink默认会使用程序中设置的偏移位置(比如正常是从topic的最新偏移位置)开始消费的,那么当flink从故障中恢复过来时,flink又是从topic的什么位置开始消费消息的呢?其实这里要分情况:

情况一:假设flink中是开启了检查点配置的,也就是检查点中会保存着故障前的topic消费偏移,那么flink从故障中恢复后会从检查点中保存的topic偏移位置开始消费,记住是从检查点中保存的消费偏移位置开始消费,不是从崩溃前一刻的消费偏移开始消费

情况二: flink没有开启检查点的配置,也就是flink没有保存任何包括kafka 主题的偏移位置之类的状态信息,那么重新启动flink时它的表现和第一次启动flink的表现一样,也就是由程序中设置的偏移位置决定(比如正常是从topic的最新偏移位置)开始消费

其实,第一种情况让人容易理解,比较让人难以理解的是情况二,我们很容易的自以为flink 会从它上一次消费到的偏移位置开始消费,毕竟kafka的_offset__主题中保存着消费者组和各个topic的消费偏移的信息。但是结论是,flink没有这么做,他的行为会和首次启动时的一样。文章来源地址https://www.toymoban.com/news/detail-571970.html

到了这里,关于flink如何初始化kafka数据源的消费偏移的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 三、Kafka生产者1---Kafka生产者初始化-new KafkaProducer

    概述 本文主要是分享Kafka初始化生产者的 大体过程 初始化过程中会新建很多对象,本文暂先分享部分对象 1.分区器---Partitioner partitioner 2.重试时间---long retryBackoffMs 3.序列化器---SerializerK keySerializer,SerializerV valueSerializer 4.拦截器--- ListProducerInterceptorK, V interceptorList 5.累加器-

    2024年03月14日
    浏览(15)
  • keycloak~EventListenerProvider初始化kafka引出的类加载问题

    keycloak提供的事件处理机制,可以通过实现EventListenerProvider接口来实现自定义的事件处理逻辑。在keycloak启动时,会通过ServiceLoader机制加载所有的EventListenerProvider实现类,并将其注册到keycloak的事件处理机制中。 构造方法,在每个keycloak后台操作时,它都会重新构建实例 OnEv

    2024年02月17日
    浏览(8)
  • 如何优雅地在Spring Boot项目启动时初始化数据,让你的Web应用快人一步

    如何优雅地在Spring Boot项目启动时初始化数据,让你的Web应用快人一步

    🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 大多数Java Web应用程序中,项目在启动时都需要加载一些初始化数据,例如配置文件、数据库连接信息等。在Spring Boot中,我们可以通过将数据缓存到内存中来提高Web应用程序的性能。本篇博客旨在通过一个实例来介绍如

    2024年02月02日
    浏览(13)
  • Kafka3.0.0版本——消费者(消费者组初始化流程图解)

    Kafka3.0.0版本——消费者(消费者组初始化流程图解)

    每个consumer都发送JoinGroup请求,如下图所示: 选出一个consumer作为leader,如下图所示: 把要消费的topic情况发送给leader 消费者,如下图所示: leader会负责制定消费方案,并把消费方案发给coordinator,如下图所示: Coordinator就把消费方案下发给各个consumer,如下图所示: 每个消

    2024年02月09日
    浏览(9)
  • 数据结构学习记录——如何建立图(邻接矩阵、邻接表-图节点的结构、创建并初始化、插入变、完整图的建立)

    目录 邻接矩阵 图节点的结构 创建并初始化 插入边 完整的图的建立  邻接表 图节点的结构 创建并初始化 插入边  完整的图的建立  定义结构体GNode,其中包含以下成员变量: Nv:表示图中的顶点数。 Ne:表示图中的边数。 二维数组表示图的邻接矩阵。它的大小是MaxVertexN

    2024年02月06日
    浏览(11)
  • 官答|初始化GreatSQL报错无法找到数据目录或初始化数据字典失败

    官答|初始化GreatSQL报错无法找到数据目录或初始化数据字典失败

    GreatSQL推出新栏目——官答 官答栏目针对GreatSQL数据库中的问题,选取官方论坛和讨论群中的典型提问进行深入解答。内容涵盖数据库安装部署、配置优化、故障排查、性能测试等方面。 在文章中,我们不仅提供解决方案,还会结合实例深入剖析问题的成因,提升读者对GreatSQL数据

    2024年02月04日
    浏览(12)
  • 阿里云服务器如何初始化云盘(跟换系统)?初始化云盘和跟换操作系统的区别?

    阿里云服务器如何初始化云盘(跟换系统)?初始化云盘和跟换操作系统的区别?

            若在Linux系统(服务器)上,环境安装出错,可通过云服务器上初始化云盘,回归硬盘初始化状态,进行重新安装。         作为小白的我们,第一次在服务器中下载安装软件,并部署环境,难免万般出错,然而想要完全卸载软件,甚是初始化到原来的系统环境,依

    2023年04月08日
    浏览(10)
  • Python如何创建二维数组和初始化

    Python如何创建二维数组和初始化

            严格意义上说,Python中并没有数组的概念,Python中表达一组数据有多种形式,例如list,tuple,set等数据结构都可以表达一组数,并且这组数也没有C和C++中数组的的同质限制,这些数可以是任何一种数据类型。         以list为例(list又叫列表),要想实现一个所

    2024年02月20日
    浏览(10)
  • go语言数据初始化

    数据的声明: 初始化数组的初始化有多种形式。 [5] int {1,2,3,4,5} 长度为5的数组,其元素值依次为:1,2,3,4,5。 [5] int {1,2} 长度为 5 的数组,其元素值依次为:1,2,0,0,0 。 在初始化时没有指定初值的元素将会赋值为其元素类型 int 的默认值0,string 的默认值是 “”。

    2024年02月03日
    浏览(12)
  • git如何初始化本地代码提交到远程仓库?

    1.在本地项目目录中打开终端,使用以下命令初始化Git仓库 2.使用以下命令将项目中的所有文件添加到Git仓库中: 如果只想添加某个文件,可以使用以下命令: 3.使用以下命令提交添加的文件到本地Git仓库: 其中,-m参数后面的内容是提交的说明信息,可以根据实际情况修改

    2024年02月15日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包