Flink教程(9)-Flink状态后端、容错与一致性

本文详细介绍了Flink的状态后端,包括MemoryStateBackend、FsStateBackend和RocksDBStateBackend,以及它们在生产环境中的适用情况。此外,文章深入探讨了Flink的容错机制,特别是检查点的概念、实现原理和配置。Flink通过Chandy-Lamport算法实现检查点,保证状态不丢失,从而实现容错。最后,文章讨论了Flink的状态一致性,包括At Most Once、At Least Once和Exactly Once这三种一致性级别,以及如何通过CheckPoint机制实现Exactly Once。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Flink状态后端

在前文中我们讲述了Flink的状态管理以及状态编程。所举的例子中,State都是基于内存存储的。实际生产中,如果状态一直都保存在内存,那么系统宕机或其它问题引起的系统重启时,状态数据就会丢失,无法知晓数据处理的进度。因此需要一种类似"定时存盘"的机制来保证数据流处理过程中的容错性。在Flink中,状态的存储、访问以及维护都是由称之为状态后端(state backends)的组件决定。当需要对某个State做Checkpoint时,就需要指定具体的状态后端来告诉Flink状态的存储方式和存储位置。State Backends管理着本地状态以及checkpoint(检查点)状态写入远端存储。Checkpoint可以认为是某段时间state的一个全局快照。

说白了,状态后端就是Flink中自动管理状态时存储状态值的地方。Flink中主要支持3种状态后端。

1)基于内存的MemoryStateBackend

​ 将state数据作为内存中的对象进行管理,存储在TaskManager的JVM堆上。将checkpoint数据存储在JobManager的内存中。

​ 这种方式单个State大小默认不能超过5M,总的State数据和checkpoint数据大小不能超过JobManager的内存大小。这是默认的状态后端管理器。适用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程猿薇茑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值