当前位置: 首页 > news >正文

ps网站头部图片百度网盘手机版

ps网站头部图片,百度网盘手机版,大型网络游戏,网站建设招标方案版本 flink 1.16.0kafka 2.3 流程描述: flink利用KafkaSource,读取kafka的数据,然后经过一系列的处理,通过KafkaSink,采用 EXACTLY_ONCE 的模式,将处理后的数据再写入到新的topic中。 问题描述&#xff1…

版本

  • flink 1.16.0
  • kafka 2.3

流程描述:

flink利用KafkaSource,读取kafka的数据,然后经过一系列的处理,通过KafkaSink,采用 EXACTLY_ONCE 的模式,将处理后的数据再写入到新的topic中。

问题描述:

数据写入到新的topic后,过上几分钟的时间,利用工具offset explorer观察对应topic的数据量,显示为0。
刚写入没多久的数据消失了 ???大写的懵 ???

定位问题:

  • 首先查看kafka的日志:

在这里插入图片描述

  • 阅读flink 官方文档 kafkaSink的介绍:

DeliveryGuarantee.EXACTLY_ONCE: In this mode, the KafkaSink will write
all messages in a Kafka transaction that will be committed to Kafka on
a checkpoint. Thus, if the consumer reads only committed data (see
Kafka consumer config isolation.level), no duplicates will be seen in
case of a Flink restart. However, this delays record visibility
effectively until a checkpoint is written, so adjust the checkpoint
duration accordingly. Please ensure that you use unique
transactionalIdPrefix across your applications running on the same
Kafka cluster such that multiple running jobs do not interfere in
their transactions! Additionally, it is highly recommended to tweak
Kafka transaction timeout (see Kafka producer transaction.timeout.ms)»
maximum checkpoint duration + maximum restart duration or data loss
may happen when Kafka expires an uncommitted transaction.

  • 翻译过来的意思大概就是:

在EXACTLY_ONCE这种模式下,KafkaSink在事务中写入所有的消息,这些消息在checkpoint上提交给kafka。因此,在flink重启的情况下,如果消费者值读取提交的数据,不会看到重复的数据。缺点就是延迟记录可见性,知道写入检查点为止。强烈建议调整kafka的事务超时时间(见Kafka producer transaction.timeout.ms),超时时间要大于【最大检查点持续时间+最大重启持续时间】,否则当Kafka过期未提交的事务时可能会发生数据丢失。

  • 阅读kafka的官网介绍:

Producer Configs:
transaction.timeout.ms:60000(默认值)

参数描述:
The maximum amount of time in ms that the transaction coordinator will
wait for a transaction status update from the producer before
proactively aborting the ongoing transaction.If this value is larger
than the transaction.max.timeout.ms setting in the broker, the request
will fail with a InvalidTransactionTimeout error.

Broker Configs
transaction.max.timeout.ms:900000(默认值)

参数描述:
The maximum allowed timeout for transactions. If a client’s requested
transaction time exceed this, then the broker will return an error in
InitProducerIdRequest. This prevents a client from too large of a
timeout, which can stall consumers reading from topics included in the
transaction.

  • 最后排查
    在flink中设置的超时时间违反了kafka producer对应的参数规定。

解决问题

在kafkaSink的配置中,加入

Properties properties = new Properties();
// 根据上面的介绍自己计算这边的超时时间,满足条件即可
properties.setProperty("transaction.timeout.ms","900000");KafkaSink<String> sink = KafkaSink.<String>builder().setBootstrapServers(bootstrapServers).setRecordSerializer(KafkaRecordSerializationSchema.<String>builder().setTopic(sinkTopic).setValueSerializationSchema(new SimpleStringSchema()).build()).setKafkaProducerConfig(properties).setDeliveryGuarantee(DeliveryGuarantee.EXACTLY_ONCE).setTransactionalIdPrefix("flink-xhaodream-").build();

总结

在使用现有框架和工具的时候,往往只是懂得怎么用,具体底层的逻辑、原理,了解的很少。往往只有真正理解了原理,遇到了问题,才会更快、更准确的定位问题、解决问题。

http://www.ds6.com.cn/news/104051.html

相关文章:

  • 大红门做网站佛山网站建设模板
  • 赣州网站建设公司哪家好seo是指
  • 苏州企业网站制作设计公司杭州云优化信息技术有限公司
  • 建立自己的购物网站私域运营软件
  • 做网站公司实力排名seo网站推广工具
  • 淄博桓台网站建设公司汕头seo代理
  • 网站访问速度 云组机网站运营一个月多少钱
  • html进入网页自动播放音乐沧州网站seo
  • 重庆网站建设沛宣找片子有什么好的关键词推荐
  • 花钱推广的网络平台seo网站排名全选
  • wordpress网站首页站内优化包括哪些
  • 北京市昌平建设工程招标网站网站建设公司大型
  • 2021最新新闻国内大事件seo门户 site
  • lamp环境wordpressseo网站诊断文档案例
  • 海南网站建站站长统计app软件下载官网
  • 做网站建设哪家公司靠谱口碑营销的方法
  • 建设部网站施工合同范本保定seo排名
  • 东乡建设网站网站运营维护的基本工作
  • 做网站容易还是做小程序容易友情链接交换
  • 医院网站设计与实现seo培训教程视频
  • 有没有专业做电视测评的网站国内做seo最好的公司
  • 临沭做网站怎么在百度投放广告
  • 代做备案网站企业关键词排名优化网址
  • 微信微网站开发教程产品线上营销有哪些方式
  • 选择ssm框架做网站的好处百度登陆页面
  • 广州微型网站建设seo渠道
  • 优秀专题网站贵港网站seo
  • 专业做蛋糕视频网站全国疫情防控最新数据
  • 江苏省建设执业网站长沙谷歌seo
  • 长沙网站seo按天计费哪些网站有友情链接