title: Flink的状态后端(State Backends)
categories:
- Flink
tags: - flink
date: 2019-08-23 11:38:00
当使用checkpoint时,状态(state)会被持久化到checkpoint上,以防止数据的丢失并确保发生故障时能够完全恢复。状态是通过什么方式在哪里持久化,取决于使用的状态后端。
可用的状态后端
MemoryStateBackend
FsStateBackend
FsStateBackend
注意:如果什么都不配置,系统默认的是MemoryStateBackend
MemoryStateBackend
MemoryStateBackend
是将状态维护在 Java 堆上的一个内部状态后端。键值状态和窗口算子使用哈希表来存储数据(values)和定时器(timers)。当应用程序 checkpoint 时,此后端会在将状态发给 JobManager 之前快照下状态,JobManager 也将状态存储在 Java 堆上。默认情况下,MemoryStateBackend
配置成支持异步快照。异步快照可以避免阻塞数据流的处理,从而避免反压的发生。当然,使用