Flink 状态后端及RocksDBStateBackend的优势


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

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

RocksDBStateBackend的优势:

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

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

3、支持增量checkpoint