首页 > 其他分享 >Flink 中的容错机制

Flink 中的容错机制

时间:2024-01-29 15:56:56浏览次数:26  
标签:处理 Flink 保存 容错 故障 检查点 机制 hello

在 Flink 中,有一套完整的容错机制来保证故障后的恢复,其中最重要的就是检查点。

1.检查点(Checkpoint)

在流处理中,我们可以用存档读档的思路,就是将之前某个时间点所有的状态保存下来,这份“存档”就是所谓的“检查点”(checkpoint)。

遇到故障重启的时候,我们可以从检查点中“读档”,恢复出之前的状态,这样就可以回到当时保存的一刻接着处理数据了。

这里所谓的“检查”,其实是针对故障恢复的结果而言的:故障恢复之后继续处理的结果,应该与发生故障前完全一致,我们需要“检查”结果的正确性。所以,有时又会把checkpoint叫做“一致性检查点”。

1.检查点的保存

1.周期性的触发保存

“随时存档”确实恢复起来方便,可是需要我们不停地做存档操作。如果每处理一条数据就进行检查点的保存,当大量数据同时到来时,就会耗费很多资源来频繁做检查点,数据处理的速度就会受到影响。所以在 Flink中,检查点的保存是周期性触发的,间隔时间可以进行设置。

2.保存的时间点

我们应该在所有任务(算子)都恰好处理完一个相同的输入数据的时候,将它们的状态保存下来。

这样做可以实现一个数据被所有任务(算子)完整地处理完,状态得到了保存。

如果出现故障,我们恢复到之前保存的状态,故障时正在处理的所有数据都需要重新处理;我们只需要让源(source)任务向数据源重新提交偏移量、请求重放数据就可以了。当然这需要源任务可以把偏移量作为算子状态保存下来,而且外部数据源能够重置偏移量;kafka 就是满足这些要求的一个最好的例子。

3.保存的具体流程

检查点的保存,最关键的就是要等所有任务将“同一个数据”处理完毕。下面我们通过一个具体的例子,来详细描述一下检查点具体的保存过程。

回忆一下我们最初实现的统计词频的程序——word count。这里为了方便,我们直接从数据源读入已经分开的一个个单词,例如这里输入的是:“hello”,“world”,“hello”,“flink”,“hello”,“world”,“hello”,“flink”…

我们所需要的就是每个任务都处理完“hello”之后保存自己的状态。

标签:处理,Flink,保存,容错,故障,检查点,机制,hello
From: https://www.cnblogs.com/fanqisoft/p/17994703

相关文章

  • 易基因:ChIP-seq等揭示人畜共患寄生虫弓形虫的蛋白质乳酸化和代谢调控机制|项目文章
    大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。弓形虫(Toxoplasmagondii)是弓形虫病(toxoplasmosis)广泛传播的寄生虫病的病原体之一,但其生物学特性仍然知之甚少。乳酸(Lactate)作为葡萄糖代谢的产物,不仅在包括弓形虫在内的多种生物体中作为能量来源,还是一种参与基因激......
  • 自注意力机制-Self-Attention
    一、注意力机制和自注意力机制的区别Attention机制与Self-Attention机制的区别传统的Attention机制发生在Target的元素和Source中的所有元素之间。简单讲就是说Attention机制中的权重的计算需要Target来参与。即在Encoder-Decoder模型中,Attention权值的计算不仅需要Encoder中......
  • Flink 中的状态管理
    1.Flink中的状态1.概述在Flink中,算子任务可以分为无状态和有状态两种情况。无状态的算子任务只需要观察每个独立事件,根据当前输入的数据直接转换输出结果。我们之前讲到的基本转换算子,如map、filter、flatMap,计算时不依赖其他数据,就都属于无状态的算子。而有状态的算子任务,......
  • Windows 堆管理机制 [2] Windows 2000 – Windows XP SP1版本
    2.Windows2000–WindowsXPSP12.1环境准备环境环境准备虚拟机32位Windows2000SP4调试器OllyDbg、WinDbg编译器VC6.0++、VS20082.2堆的结构​ 在该阶段,整个堆空间主要由4个结构来维护,分别是段表(segmentlist)、虚表(VirtualAllocationlist)、......
  • Windows 堆管理机制 [3] Windows XP SP2 – Windows 2003 版本
    3.WindowsXPSP2–Windows20033.1环境准备环境环境准备虚拟机32位WindowsXPSP2\32位WindowsXPSP3调试器OllyDbg、WinDbg编译器VC6.0++、VS20083.2堆的结构(Windbg详细分析)​ 在该阶段,堆块的数据结构基本继承于Windows2000–WindowsXPSP1......
  • Windows 堆管理机制 [1] 堆基础
    声明:这篇文章在写的时候,是最开始学习这个堆管理机制,所以写得有些重复和琐碎,基于笔记的目的想写得全一些,这篇文章写的时候参考了很多前辈的文章,已在末尾标出,某些未提及到的可以在评论补充基于分享的目的,之前把所有部分都放出来了,但是全篇有八万词,pdf版本长达两百多页,全部放出看着......
  • 安卓反编译机制,应用场景以及工具解析
    一、引言随着移动应用的普及,安卓系统成为了市场上的主流操作系统之一。然而,安卓应用的源代码往往受到版权保护,开发者需要对其安全性进行维护。此时,反编译技术应运而生,成为保障应用安全的重要手段。本文将详细介绍安卓反编译的机制、应用场景、相关工具及技术,并对其优劣进行分析。二......
  • 【亿级数据专题】「分布式消息引擎」 盘点本年度我们探索服务的低延迟可用性机制方案
    疾风吹征帆,倏尔向空没。干里在俄顷,三江坐超忽。一孟浩然背景介绍在充满挑战的2023年度,我们不可避免地面对了一系列棘手的问题,例如响应速度缓慢、系统陷入雪崩状态、用户遭受不佳的体验以及交易量的下滑。这些问题的出现,严重影响了我们的业务运行和用户满意度,为了应对这些问题,我们所......
  • 基于事件驱动的机制
    目录简介应用场景事件驱动编程与回调函数有何不同简介在Linux下,基于事件驱动的机制主要是通过内核实现,主要涉及到消息传递机制。当硬件设备发出中断时,Linux内核会将触发事件的信息转发到对应的进程上,从而使用户态的应用程序可以响应中断信号,提高程序的响应能力。此外,Linux还提......
  • java enum枚举实现机制
    在上篇文章中,我们对Java中的枚举类进行了详细的介绍。对于Enum还不了解的小伙伴,可以先预习《Java中的枚举类型(Enum)详解》一文。通过反编译,我们知道Java枚举类会在编译之后转化为一个继承了java.lang.Enum的类,而我们定义的每个枚举值都会在类的初始化阶段被实例化为我们所定义的......