关于flink:Flink入门修炼21-Flink-四大基石

71次阅读

共计 1561 个字符,预计需要花费 4 分钟才能阅读完成。

前一章咱们对 Flink 进行了总体的介绍。对 Flink 是什么、能做什么、入门 demo、架构等进行了解说。
本章咱们将学习 Flink 重点概念、外围个性等。
本篇对 Flink 四大基石进行概括介绍,是 Flink 中十分要害的四个内容。

一、四大基石

Flink 四大基石别离是:Time(工夫)、Window(窗口)、State(状态)、Checkpoint(检查点)。

上面咱们对每个局部,别离进行介绍。

(一)State

什么是状态?
流计算一直有数据流入,会基于历史数据和以后数据做计算,那么各个算子之中计算后的数据就是状态。

  • Flink 计算引擎,本身就是基于状态计算框架,默认状况下程序本人治理状态
  • 提供一致性的语义,使得用户在编程时可能更轻松、更容易地去治理状态
  • 提供一套十分简单明了的 State API,包含 ValueState、ListState、MapState,BroadcastState

(二)Checkpoint

什么是 Checkpoint(检查点)?
一言以蔽之:用于 Flink 的故障复原。

Checkpoint 会定期生成快照(Snapshot),对以后 State 进行备份。若 Flink 程序解体,从新运行程序时能够有选择地从这些快照进行复原。Checkpoint 是 Flink 可靠性的基石

原理:
应用异步屏障快照 Asynchronous Barrier Snapshotting(简称 ABS)算法(依赖于 Chandy-Lamport 算法的变种)实现分布式快照。

与之相干的,容易混同的是 savepoint。Savepoint 你能够把它当做在某个工夫点程序状态全局镜像,当前程序在进行降级,或者批改并发度等状况,还能从保留的状态位持续启动复原。

checkpointsavepoint
概念 主动容错机制 程序全局状态镜像
目标 程序主动容错,疾速复原。 程序修改后持续从状态复原,程序降级等。
用户交互 Flink 零碎行为。 用户触发。
状态文件保留策略 默认程序删除,能够设置 CheckpointConfig 中的参数进行保留。 会始终保留,除非用户删除。

(三)Window

流计算一种典型场景是计算一段时间内的统计值,如最近 5min、最近 1h 的点击量。
想实现这个操作,就须要划定一个时间段,也就是开窗,基于这个工夫窗口上的数据做计算。

依据窗口数据划分的不同,目前 Flink 反对如下 3 种:

  • 滚动窗口 ,窗口数据有固定的大小,窗口中的数据不会叠加;
  • 滑动窗口 ,窗口数据有固定的大小,并且有生成距离;
  • 会话窗口 ,窗口数据没有固定的大小,依据用户传入的参数进行划分,窗口数据无叠加。

(四)Time

要进行窗口计算,首先要明确基于的是什么工夫。
Flink 中一共提供了三类工夫:

  • 事件工夫(Event Time),即事件理论产生的工夫,这个工夫个别由数据生产方本身携带;
  • 摄入工夫(Ingestion Time),事件进入流解决框架的工夫;
  • 解决工夫(Processing Time),事件被解决的工夫。

Flink 还实现了 Watermark 的机制,可能反对基于事件工夫的解决,可能容忍早退 / 乱序的数据。这个咱们前面篇章再开展讲。

二、小结

本篇对 Flink 四大基石进行了概括性的解说,让大家对 State、Checkpoint、Window、Time 的概念有了初步的认知,前面的篇章将会对四个概念进行粗疏的解说和梳理,并会深刻到源码中探索其实现原理和应用形式。


参考文章:
Flink 高级个性(一)-Flink 四大基石
[Flink: 四大基石 [Time,Window,Checkpoint,State]_flink 的四大基石 -CSDN 博客 ](https://blog.csdn.net/weixin_43563705/article/details/107614714)
FLINK 四大基石_flink 四大基石 -CSDN 博客

正文完
 0