首页 > 其他分享 >flink中一个多输入的算子如何决定是否可以往下游算子发送barrier

flink中一个多输入的算子如何决定是否可以往下游算子发送barrier

时间:2023-06-06 11:45:11浏览次数:37  
标签:barrier flink 发送 算子 流都 输入

在Flink中,多输入的算子在决定是否可以往下发 barrier 时需要满足以下条件:

  1. 输入流的 barrier 对齐:多输入的算子必须要求所有输入流都处于 barrier 对齐状态,即收到了相同的 barrier。这意味着所有输入流的上游任务都已经收到了相同的 barrier,并向下游发送了确认消息。

  2. 所有输入流都有数据可处理:多输入的算子还需要确保所有输入流都有数据可供处理。如果某个输入流没有数据,则不能继续向下发 barrier,以避免无效的 barrier 传播。

只有当满足以上两个条件时,多输入的算子才会决定往下发 barrier。它会将收到的 barrier 从一个或多个输入流中选择一个合适的 barrier 进行传播。选择的策略通常是选择最小的 barrier,以确保整个算子链的进度可以维持在最小的 barrier 位置。

需要注意的是,如果多输入的算子中有一个输入流发生了故障,无法继续向下发送 barrier,那么整个算子链将会被阻塞,直到故障恢复完成或选择新的算子链执行。这样可以确保算子链在一致的状态下进行处理,并保持整体的数据一致性。

标签:barrier,flink,发送,算子,流都,输入
From: https://www.cnblogs.com/lukairui/p/17460104.html

相关文章

  • flink的状态表需要保存多久
    Flink的状态表保存的时间可以根据应用程序的需求进行配置。状态表的保留时间取决于两个因素:状态后端(StateBackend)的配置:Flink支持不同类型的状态后端,如内存、文件系统、RocksDB等。不同的状态后端可以配置不同的状态保留策略。例如,如果使用基于内存的状态后端,状态表的数据通常......
  • flink从检查点恢复时候做什么
    当发生故障时,Flink从最近的一致性检查点中恢复任务的状态。以下是从检查点恢复的主要步骤:加载检查点元数据和状态数据:Flink首先加载最近一次成功的检查点的元数据和持久化的状态数据。检查点的元数据包含了关于检查点的信息,如检查点ID、生成时间和相关的任务信息等。持久化的状......
  • flinkv1.14启动过程分析
    今天阅读了一下flinkv1.14的代码,首先分析一下flink启动的过程。首先分2种,一种是SessionClusterEntrypoint,一种是JobClusterEntrypoint。分别对应session模式和per-job模式。session模式就是一次启动,可以执行多个job,执行完job还有后台进程在等待用户提交新的job。per-job模式......
  • Flink CDC
    第1章CDC简介1.1什么是CDCCDC是ChangeDataCapture(变更数据获取)的简称。核心思想是,监测并捕获数据库的变动(包括数据或数据表的插入、更新以及删除等),将这些变更按发生的顺序完整记录下来,写入到消息中间件中以供其他服务进行订阅及消费。1.2CDC的种类CDC主要分为基于查询......
  • Flink Table Store 独立孵化启动 ,Apache Paimon 诞生
    2023年3月12日,FlinkTableStore项目顺利通过投票,正式进入Apache软件基金会(ASF)的孵化器,改名为ApachePaimon(incubating)。随着ApacheFlink技术社区的不断成熟和发展,越来越多企业开始利用Flink进行流式数据处理,从而提升数据时效性价值,获取业务实时化效果。与此......
  • Flink实战(七) - Time & Windows编程
    掌握Flink中三种常用的Time处理方式,掌握Flink中滚动窗口以及滑动窗口的使用,了解Flink中的watermark。Flink在流处理工程中支持不同的时间概念。1处理时间(Processingtime)执行相应算子操作的机器的系统时间。当流程序在处理时间运行时,所有基于时间的算子操作(如时间窗口)将使用运行相......
  • Flink中的Window和Time详解
    Window(窗口)Flink认为批处理是流处理的一个特例,所以Flink底层引擎是一个流式引擎,在上面实现了流处理和批处理。而Window就是从流处理到批处理的一个桥梁。通常来讲,Window是一种可以把无界数据切割为有界数据块的手段例如,对流中的所有元素进行计数是不可能的,因为通......
  • Flink核心API之DataSet
    DataSetAPIDataSetAPI主要可以分为3块来分析:DataSource、Transformation、Sink。DataSource是程序的数据源输入。Transformation是具体的操作,它对一个或多个输入数据源进行计算处理,例如map、flatMap、filter等操作。DataSink是程序的输出,它可以把Transformation处理之后的数......
  • Flink核心API之Table API和SQL
    TableAPI&SQL注意:TableAPI和SQL现在还处于活跃开发阶段,还没有完全实现Flink中所有的特性。不是所有的[TableAPI,SQL]和[流,批]的组合都是支持的。TableAPI和SQL的由来:Flink针对标准的流处理和批处理提供了两种关系型API,TableAPI和SQL。TableAPI允许用户以一种很直......
  • Flink核心API之DataStream
    Flink中提供了4种不同层次的API,每种API在简洁和易表达之间有自己的权衡,适用于不同的场景。目前上面3个会用得比较多。低级API(StatefulStreamProcessing):提供了对时间和状态的细粒度控制,简洁性和易用性较差,主要应用在一些复杂事件处理逻辑上。核心API(DataStream/DataSetAP......