首页 > 其他分享 >Flink-Exactly once(精确一次)

Flink-Exactly once(精确一次)

时间:2022-11-20 21:55:43浏览次数:55  
标签:Exactly point ack Flink 写入 sink 发送数据 once

目的:保证数据在生产,消费,sink端都只被精确一次。保证结果一致性。

为了达到这目的,采用的措施有:

1,生产端:往Kafka生产数据时有幂等,ack,事务,三个措施。

ps:幂等:无论数据输入多少次,只被记录一次

       ack:生产者往Kafka的topic的某个分区写数据时的一个机制。当ack=0:生产者只管发送数据到patition,不需要等待patition汇报完成,性能最好。当ack=1:生产者发送数据时,需要等待一个分区副本汇报完成即可返回。当ack:-1:生产者在发送数据时需要等待所有的副本都保存成功才能返回,安全性最好。

     事务:批量操作,要么全部成功要么全部失败。

2,消费端

通过check point保存每次计算的状态和消费的偏移量到HDFS。这个过程从source到sink。

3,sink端

Flink sink可以到mysql或者kafka,如果写入到mysql。则,因为有check point 所以可以做到Exactly once。但是写入到Kafka中的数据无法撤回,所以在写入kafka时可以可以在两个check point中间写入的数据作为一次事务(要么都写入成功,要么都写入失败),开启事务会导致数据的延时。

       

标签:Exactly,point,ack,Flink,写入,sink,发送数据,once
From: https://www.cnblogs.com/ikssss/p/16909699.html

相关文章

  • Flink 配置HADOOP_CLASSPATH 影响Hive的日志打印问题
    由于FlinkonYarn的部署需要hadoop的依赖:  比较常见的解决方式会将hadoopcalsspath放在Linux的系统环境变量下,但是这里会影响Hive的日志级别,导致Hive打印过多的INFO......
  • Flink-水位线的设置以及传递
    6.2水位线6.2.1概述分类有序流无序流判断的时间延迟延迟时间判定6.2.2水位线的设置分析DataStream下的assignTimstampsAndWatermarks方法,返回Sing......
  • 基于Java 语言实现区块链的 Proof of Concept 版本
    基于Java语言实现区块链的ProofofConcept版本1.创建区块类/***区块链里边存放的数据是:*data数据*preHash上一个区块的hash值*hash自己的hash值它......
  • Flink基于State做千万用户的pv
    需求:记录每天某一页面下所有用户的访问次数和第一次访问的时间解法:redis做缓存,每天一个map,设置ttl,用户访问次数做累积,过滤完先存到redis,sink的时候读redis,查出这个用户的总......
  • Flink广播变量
    应用场景实时更新配置,例如:任务在统计3个页面的uv,又要统计另外三个页面的uv,那我是不是可以通过配置的方式,快速实现类似需求实时加载维表,例如:kafka里用户购买的订单信息的binl......
  • Flink/Spark中ETL的简单模版
    我们往往可以忽略外界的干扰因素,避免焦虑,专心做自己想做的事情,反正焦虑又解决不了问题引言使用flink或者spark的时候,写好固定的模版很重要,对于一下etl的实时任务,只需要执行......
  • Apache Flink架构及其工作原理
    ApacheFlink架构及其工作原理1、定义:Apacheflink是一个实时计算框架和分布式处理引擎,用于再无边界和有边界数据流上进行有状态的计算,Flink能在所有的集群环境中运行,......
  • 在macbook m1上调试flink1.14.3
    前置条件1:首先先用homebrew安装一下flink1.14.3版本,安装完成后,/usr/local/Celler/apache-flink/1.14.3是主路径。可以看看有没有类似的文件夹来确定有没有安装上。前置条......
  • 初识Flink简单介绍
    Flink是实时计算框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。有界流和无界流都是基于Datastream这个Flink的编程模型。Flink自己管理内存机制,批......
  • 快速创建软件安装包-ClickOnce
    大家好,我是沙漠尽头的狼。.NET是免费,跨平台,开源,用于构建所有应用的开发人员平台。今天介绍使用ClickOnce制作软件安装包,首先我们先了解什么是ClickOne。1.什么是ClickOnce......