Flink 状态后端及RocksDBStateBackend的优势

 

MemoryStateBackend(只用于本地开发和调试,不用于生产)和FsStateBackend(如果Flink作业的状态很小或需要很低的延迟,则应该考虑FsStateBackend),这两种都是基于JVM堆。

RocksDBStateBackend:非分布式数据库,它通过Java Native接口(JNI)与Flink进行交互

RocksDBStateBackend的优势:

1、运行中的状态首先写入堆外/本机内存,然后当达到配置的阈值时刷新到本地磁盘。这意味着RocksDBStateBendback可以支持大于总配置堆容量的状态,或者说其状态大小只受限于整个集群中的可用磁盘空间

2、因为RocksDBStateBackend不使用JVM堆来存储运行中的状态,故它也不受JVM垃圾回收的影响,具有可预测的延迟

3、支持增量checkpoint,增量检查点非常适用于超大状态的场景

需要注意的是RocksDBStateBackend也需要配置外部文件系统,集中保存state

posted @ 2022-03-29 15:59  再见傅里叶  阅读(377)  评论(0编辑  收藏  举报