Apache Flink 状态管理教案

State & Fault Tolerance

Flink是一个基于状态计算的流计算服务。Flink将所有的状态分为两大类:keyed stateoperator state.所谓的keyed state指的是Flink底层会给每一个Key绑定若干个类型的状态值,特指操作KeyedStream中所涉及的状态。所谓operator state指的是非keyed stream中所涉及状态称为operator state,所有的operator state会将状态和具体某个操作符进行绑定。无论是keyed state还是operator stateflink将这些状态管理底层分为两种存储形式:Managed StateRaw State

Managed State- 所谓的Managed State,指的是由Flink控制状态存储结构,例如:状态数据结构、数据类型等,由于是Flink自己管理状态,因此Flink可以更好的针对于管理状态做内存的优化和故障恢复。

Raw State - 所谓的Raw state,指的是Flink对状态的信息和结构一无所知,Flink仅仅知道该状态是一些二进制字节数组,需要用户自己完成状态序列化和反序列化。,因此Raw State Flink不能够针对性的做内存优化,也不支持故障状态的恢复。因此在Flink实战项目开发中,几乎不使用Raw State.

All datastream functions can use managed state, but the raw state interfaces can only be used when implementing operators. Usi

你可能感兴趣的:(Flink实时计算)