文章目录
先来看数据是如何经过网络写入下游Task节点并通过算子进行处理的
,这里以OneInputStreamTask为例进行说明。
一. StreamTask核心组件与能力
如代码OneInputStreamTask.init()方法包含了初始化StreamTask主要核心组件的逻辑。
OneInputStreamTask
public void init() throws Exception {
StreamConfig configuration = getConfiguration();
int numberOfInputs = configuration.getNumberOfInputs();
if (numberOfInputs > 0) {
// 创建CheckpointedInputGate
CheckpointedInputGate inputGate = createCheckpointedInputGate();
TaskIOMetricGroup taskIOMetricGroup = getEnvironment()
.getMetricGroup().getIOMetricGroup();
taskIOMetricGroup.gauge("checkpointAlignmentTime",
inputGate::getAlignmentDurationNanos);
// 创建DataOutput组件
DataOutput<IN> output = createDataOutput();
StreamTaskInput<IN> input = createTaskInput(inputGate, output);
// 创建StreamOneInputProcessor
inputProcessor = new StreamOneInputProcessor<>(
input,
output,
getCheckpointLock(),
operatorChain);
}
headOperator.getMetricGroup().gauge(MetricNames.IO_CURRENT_INPUT_WATERMARK,
this.inputWatermarkGauge);
getEnvironment().getMetricGroup().gauge(MetricNames.</