概述
StreamGraph 代表最原始的?topology,沒有 chain 優(yōu)化, 沒有并行度概念,只有 StreamNode和StreamEdge。
StreamGraph 會合并一些虛擬節(jié)點,列如SelectNodes,SideOutputNodes,PartitionNodes,這些節(jié)點不會生成StreamNode。
StreamGraph 由?org.apache.flink.streaming.api.graph.StreamGraphGenerator#generate 生成。
方法
StreamGraph 的生成過程就是遍歷已經(jīng)生成的 transformations,對每個transformation調(diào)用 transform 方法。
每個transformation 如果不是虛擬節(jié)點,那么就會通過 StreamGraph.addOperator 方法生成 StreamNode,并添加到streamNodes集合里面去。
然后添加StreamEdge,虛擬節(jié)點包含在StreamEdge里面