点击上方蓝
字关注~
在前一篇StreamOperator源码简析中提到StreamOperator上层是由StreamTask调用,也就是说StreamTask会在发生不同阶段、不同动作去调用StreamOperator对应的方法,在Flink中将StreamTask称之为Invokable,这篇主要从源码角度分析一下StreamTask。
StreamTask层级结构
AbstractInvokable :是一个抽象类,代表最顶层的Invokable,在这个抽象类里面声明了最要的方法invoke,可以认为是task执行的起点,里面涉及的具体流程稍后会做分析;另外还声明了与checkpoint动作相关的方法triggerCheckpoint/triggerCheckpointOnBarrier/notifyCheckpointComplete;
StreamTask: 是AbstractInvokable的基本抽象实现类,其也是一个抽象类,实现了invoke、triggerCheckpoint等方法,另外声明了init、run等StreamTask声明周期的抽象方法,具体实现类有一下三个:
SourceStreamTask 代表源(StreamSource)的Invokable
OneInput