概述
StreamGraph 代表最原始的 topology,没有 chain 优化, 没有并行度概念,只有 StreamNode和StreamEdge。
StreamGraph 会合并一些虚拟节点,列如SelectNodes,SideOutputNodes,PartitionNodes,这些节点不会生成StreamNode。
StreamGraph 由 org.apache.flink.streaming.api.graph.StreamGraphGenerator#generate 生成。
方法
StreamGraph 的生成过程就是遍历已经生成的 transformations,对每个transformation调用 transform 方法。
每个transformation 如果不是虚拟节点,那么就会通过 StreamGraph.addOperator 方法生成 StreamNode,并添加到streamNodes集合里面去。
然后添加StreamEdge,虚拟节点包含在StreamEdge里面
网友评论