状态编程
0 状态管理机制
1 算子任务分类
1 无状态
2 有状态
2 状态分类
Flink 有两种状态:托管状态(Managed State)和原始状态(Raw State)。一般情况使用托管状态,只有在托管状态无法实现特殊需求,才会使用原始转态,一般情况不使用。
托管状态分类:算子状态(Operator State)和按键分区状态(Keyed State)
1 按键分区状态
2 算子状态
3 广播状态 Broadcast State
特殊的算子状态
3 状态持久化
对状态进行持久化( persistence)保存,这样就可以在发生故障后进行重启恢复。
flink状态持久化方式:写入一个“检查点”( checkpoint)或者保存点 savepoint
保存到外部存储系统中。具体的存储介质,一般是分布式文件系统( distributed file system)。
4 状态后端 State Backends
在Flink中,状态的存储、访问以及维护,都是由一个可插拔的组件决定的,这个组件就
叫作状态后端( state backend)。状态后端主要负责两件事:一是本地的状态管理,二是将检查
点( checkpoint)写入远程的 持久化存储。