Flink 中运算符初始化的顺序

Order of operators initialization in Flink

我有一个Flink job,经典造型datasource-operator1-operatorN-sink

据我观察,operator1open() 方法在 datasourceopen() 方法之前被调用。

operator1open() 方法中,我需要处理一些业务逻辑,它依赖于在 datasource.open()

得到解析的东西

1- 有什么方法可以限制在 datasource.open() 之前不调用 operator1.open() 吗?
2- 有什么方法可以从 datasource.open() 方法 communicate/signal 到 operator1.open() 方法吗?

试图在运营商之间建立某种带外通信常常会给人们带来麻烦。最好的情况是它会搞砸性能,最坏的情况是会导致死锁。

您可能会尝试依赖数据源和异步函数之间已经存在的信号通路——换句话说,从数据源发出一个特殊编码的事件,告诉异步函数它可以现在开始,让异步函数在进行其他处理之前等待该特殊记录。