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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章