flinl中的状态
1、算子状态(Operatior state)
2、键控状态(keyed state)
2.1 键控状态是根据输入数据流中定义的键(key)来维护和访问的
2.2 Flink 为每个 key 维护一个状态实例,并将具有相同键的所有数据,都分区到同一个算子任务中,这个任务会维护和处理这个 key 对应的状态
2.3 当任务处理一条数据时,它会自动将状态的访问范围限定为当前数据的 key
2.4 Keyed State很类似于一个分布式的key-value map数据结构,只能用于KeyedStream(keyBy算子处理之后)
3、状态后端(state backends)
状态:
1、由一个任务维护、并且用来计算某个数据的所有结果,
2、可以认为状态就是一个本地遍历,可以被任务的业务逻辑访问。
3、flink会进行状态的管理,包括状态一致性,故障处理以及高效存储和访问,以便开发人员可以专注于应用程序的逻辑。