Flink 状态后端及RocksDBStateBackend的优势
MemoryStateBackend(只用于本地开发和调试,不用于生产)和FsStateBackend(如果Flink作业的状态很小或需要很低的延迟,则应该考虑FsStateBackend),这两种都是基于JVM堆。
RocksDBStateBackend:非分布式数据库,它通过Java Native接口(JNI)与Flink进行交互
RocksDBStateBackend的优势:
1、运行中的状态首先写入堆外/本机内存,然后当达到配置的阈值时刷新到本地磁盘。这意味着RocksDBStateBendback可以支持大于总配置堆容量的状态,或者说其状态大小只受限于整个集群中的可用磁盘空间
2、因为RocksDBStateBackend不使用JVM堆来存储运行中的状态,故它也不受JVM垃圾回收的影响,具有可预测的延迟。
3、支持增量checkpoint,增量检查点非常适用于超大状态的场景
需要注意的是RocksDBStateBackend也需要配置外部文件系统,集中保存state
-----------专注于实时数仓,大数据存储、计算