如何选择 Flink 状态后端存储?

本文详细介绍了Flink的状态后端存储,包括MemoryStateBackend、FsStateBackend和RocksDBStateBackend的使用及特点。MemoryStateBackend适合小规模测试,状态存储在内存中,不适用于生产环境。FsStateBackend将状态存储在文件系统,适用于大状态和分布式文件系统。RocksDBStateBackend使用本地数据库存储状态,减少内存压力,适合生产环境。选择状态后端时需考虑Job场景、状态大小及性能需求。

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

State Backends

当需要对具体的某一种 State 做 Checkpoint 时,此时就需要具体的状态后端存储,刚好 Flink 内置提供了不同的状态后端存储,用于指定状态的存储方式和位置。状态可以存储在 Java 堆内存中或者堆外,在 Flink 安装路径下 conf 目录中的 flink-conf.yaml 配置文件中也有状态后端存储相关的配置,为此在 Flink 源码中还特有一个 CheckpointingOptions 类来控制 state 存储的相关配置,该类中有如下配置:

  • state.backend: 用于存储和进行状态 checkpoint 的状态后端存储方式,无默认值

  • state.checkpoints.num-retained: 要保留的已完成 checkpoint 的最大数量,默认值为 1

  • state.backend.async: 状态后端是否使用异步快照方法,默认值为 true

  • state.backend.incremental: 状态后端是否创建增量检查点,默认值为 false

  • state.backend.local-recovery: 状态后端配置本地恢复,默认情况下,本地恢复被禁用

  • taskmanager.state.local.root-dirs: 定义存储本地恢复的基于文件的状态的目录

  • state.savepoints.dir: 存储 savepoints 的目录

  • state.checkpoints.dir: 存储 checkpoint

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

zhisheng_blog

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

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

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

打赏作者

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

抵扣说明:

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

余额充值