从Flink 1.13开始,社区重新修改了它的state backends类,以帮助用户更好地理解本地state backends和checkpoint存储的分离。此更改不影响运行时实现或Flink的状态后端或检查点过程的特征;这只是为了更好地传达意图。用户可以迁移现有的应用程序来使用新API,而不会丢失任何状态或一致性。
一个完整的快照包含两个部分:
- 算子执行状态operator state
- 检查点存储的元数据
状态后端的配置:
- 存储在的jvm堆中,也就是内存存储
- 存储在RocksDB ,RocksDB 的存储文件会在磁盘中
内存配置:state.backend: hashmap
rocksDB配置:state.backend: rocksdb
检查点checkoutpoint的配置:
- 存储在内存中
- 存储在文件系统中(可以是任意支持的文件系统)
内存配置:state.checkpoint-storage: jobmanager
文件系统配置有两项:state.checkpoints.dir: file:///checkpoint-dir/
state.checkpoint-storage: filesystem