Flink - [07] 容错机制

news/2024/10/2 16:28:10

题记部分

 

一、一致性检查点

  Flink故障恢复机制的核心,就是应用状态的一致性检查点。有状态流应用的一致性检查点,其实就是所有任务的状态,在某个时间点的一份拷贝(一份快照);这个时间点,应该是所有任务都恰好处理完一个相同的输入数据的时候。

 

二、从检查点恢复状态

  在执行流应用程序期间,Flink会定期保存状态的一致检查点。如果发生故障,Flink将会使用最近的检查点来一致恢复应用程序的状态,并重新启动处理流程。

(1)遇到故障之后,第一步就是重启应用

(2)第二步是从checkpoint中读取状态,将状态重置。从检查点重新启动应用程序后,其内部状态与检查点完成时的状态完全相同。

(3)第三步开始消费并处理检查点到发生故障之间的所有数据。这种检查点的保存和恢复机制可以为应用程序状态提供“精确一次”(exactly-once)的一致性,因为所有算子都会保存检查点并恢复其所有状态,这样一来所有的输入流都会被重置到检查点完成时的位置。

 

 

 

三、检查点的实现算法

(1)一种简单的想法:暂停应用,保存状态到检查点,再重新恢复应用

(2)Flink的改进实现:基于Chandy-Lamport算法的分布式快照,将检查点的保存和数据处理分离开,不暂停整个应用。

 

 

 

 

 

 

 

 

 

— 业精于勤荒于嬉,行成于思毁于随 —

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/44778.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

debezium+kafka实现sqlserver数据同步(debezium-connector-sqlserver)

SELECT CASE WHEN dss.[status]=4 THEN 1 ELSE 0 END AS isRunning FROM [#db].sys.dm_server_services dss WHERE dss.[servicename] LIKE NSQL Server Agent (%1.情景展示 在企业当中,往往会存在不同数据库之间的表的数据需要保持一致的情况(数据同步)。 如何将A库a表的数…

Java JSON组成和解析

本框架JSON元素组成和分析,JsonElement分三大类型JsonArray,JsonObject,JsonString。JsonArray:数组和Collection子类,指定数组的话,使用ArrayList来add元素,遍历ArrayList再使用Array.newInstance生成数组并添加元素即可.JsonObject:带有泛型的封装类,给带有泛型的字段…

Flink - [06] 状态管理

题记部分 一、Flink中的状态由一个任务维护,并且用来计算某个结果的所有数据,都属于这个任务的状态。 可以认为状态就是一个本地变量,可以被任务的业务逻辑访问。 Flink会进行状态管理,包括状态一致性、故障处理以及高效存储和访问,以便开发人员可以专注于应用程序的逻辑…

tableau图表样式/格式

1、色阶2、饼图变形

Linux 提权-Capabilities

本文通过 Google 翻译 Capabilities – Linux Privilege Escalation - Juggernaut-Sec 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个别注释补充。导航0 前言 1 什么是 Capabilities ? 2 枚举 Capabilities2.1 枚举 Capabilities - 手动方法2.1.1 进…

C# 设置PDF表单不可编辑、或提取PDF表单数据

PDF表单是PDF中的可编辑区域,允许用户填写指定信息。当表单填写完成后,有时候我们可能需要将其设置为不可编辑,以保护表单内容的完整性和可靠性。或者需要从PDF表单中提取数据以便后续处理或分析。 之前文章详细介绍过如何使用免费Spire.PDF库通过C# 创建、填写表单,本文将…

Python工具箱系列(五十三)

​​水印 水印是一种常见的图片处理需求。当既需要展示,又需要保护知识产权时,就需要使用文字或者图片来打水印。下面的代码展示了文字水印与图片水印的过程。 ​--javascripttypescriptbashsqljsonhtmlcssccppjavarubypythongorustmarkdown from pathlib import Pathfrom PI…

高效开发系列:鸿蒙原生app套用混合app开发思路

使用混合App开发思路来开发鸿蒙原生App是一种可行的方案。该方案可以提高开发效率、降低开发成本,但同时也存在一些劣势。开发者可以根据自己的具体需求来决定是否采用这种方案。随着鸿蒙OS生态的不断完善,鸿蒙原生App开发也将迎来新的机遇和挑战。相信在不久的将来,鸿蒙原生…