Flink State的两张图

Posted 029zz010buct

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flink State的两张图相关的知识,希望对你有一定的参考价值。

streamTask的invoke方法中,会循环去调用task上的每个operator的initializeState方法,在这个方法中,会真正创建除了savepointStream的其他三个对象,

而savepointStream会lazy到做savepoint的时候才创建对象,这个也可以理解,毕竟savepoint不是必须的。
那么,三个对象创建了之后,就可以发挥作用了吗?不是。KeyedStateBackend和OperatorStateBackend创建之后立刻就会发生作用,因为用户的
代码需要获取和操作state,都会和这两个对象打交道,而checkpointStream要发挥作用就必须等到系统发出做checkpoint的指示之后,也就是开始
做snapshot之后,这个checkpointStream作为管道将KeyedStateBackend和OperatorStateBackend中的state进行持久化。

 

内存模型

技术分享图片

 

 

 

 

 调用关系:

其中task持有processor对象和operator对象,operator对象持有runtime对象,processor和runtime都持有operator对象,大量的这种对象之间的相互引用关系。

技术分享图片

 




以上是关于Flink State的两张图的主要内容,如果未能解决你的问题,请参考以下文章

聊聊flink的Managed Keyed State

Flink State 初探

[Flink State] State究竟保存在哪里?

flink 的 State

理解Flink State

理解Flink State