Flink中的State概念及其扩容算法 state是什么意思( 二 )
在Flink中对不同类型的State有不同的扩容办法,接下来我们分离介绍 。
OperatorState对扩容的处置我们选取Flink中某个具体Connector实现实例进行介绍,以MetaQ为例,MetaQ以topic方法订阅数据,每个topic会有N>0个分区,以上图为例,假设我们订阅的MetaQ的topic有5个分区,那么当我们source由1个并发调剂为2个并发时候,State是怎么恢复的呢?
State 恢复的方法与Source中OperatorState的存储构造有必定关系,我们先看MetaQSource的实现是如何存储State的 。首先MetaQSource 实现了ListCheckpointed<T extends Serializable>,其中的T是Tuple2<InputSplit,Long>,我们在看ListCheckpointed接口的内部定义如下:
public interface ListCheckpointed<T extends Serializable> { List<T> snapshotState(long var1, long var3) throws Exception; void restoreState(List&资源网lt;T> var1) throws Exception;}我们发明 snapshotState办法的返回值是一个List<T>,T是Tuple2<InputSplit,Long>,也就是snapshotState办法返回List<Tuple2<InputSplit,Long>>,这个类型解释state的存储是一个包括partiton和offset信息的列表,InputSplit代表一个分区,Long代表当前partition读取的offset 。InputSplit有一个办法如下:
public interface InputSplit extends Serializable { int getSplitNumber();}也就是说,InputSplit我们可以懂得为是一个Partition索引,有了这个数据构造我们在看看上面图所示的case是如何工作的?当Source的并行度是1的时候,所有打partition数据都在同一个线程中读取,所有partition的state也在同一个state中保护,State存储信息格局如下:
![Flink中的State概念及其扩容算法 state是什么意思](http://img.jiangsulong.com/220807/1625093061-3.jpg)
文章插图
【Flink中的State概念及其扩容算法 state是什么意思】
推荐阅读
- 文玩|翡翠当中的瑕疵,你都了解多少呢?按照严重程度来分辨是否要买
- 5个让人爱不释手的微信小程序,每一款都是精品中的精品
- 翡翠手镯|翡翠玉雕中的巧色,分色,俏色你分清楚了吗
- 5岁儿童数学启蒙 生活中的数
- 鸡胸肉|多种类型男生眼中的心动发型
- 地球中的大气层总共分为多少层? 大气层分为几层呢
- 翡翠|翡翠原石中的雾层你了解多少?有几种颜色?哪种最好?
- 古希腊神话中的十二主神 希腊神话人物名字
- 人体气血不通如何打通
- 血小板60怎么办