【发布时间】:2021-11-30 15:12:32
【问题描述】:
我有一个 Flink 工作,具有 datasource-operator1-operatorN-sink 的经典形状。
据我观察,operator1 的open() 方法在datasource 的open() 方法之前被调用。
在operator1 的open() 方法中,我需要处理一些业务逻辑,它依赖于在datasource.open() 得到解决的东西
1- 有什么方法可以限制operator1.open() 直到datasource.open() 才被调用?
2- 有什么方法可以从datasource.open() 方法到operator1.open() 方法进行通信/发送信号?
【问题讨论】:
-
我不相信这是可能的。但是你想解决什么潜在的问题?也许我们可以提出另一种方法。
-
DS 是有状态的,并且在恢复状态(读取的最后一条记录)方面工作良好......在下游,我们有一个异步函数将记录拟合到外部服务。根据业务需求,异步功能也需要从同一记录中恢复。我也尝试对异步函数进行检查点...但是根据我的观察,异步函数检查点的最后一条记录可能与数据源快照的记录不完全相同。我正在寻找一种机制,以便异步函数在数据源恢复其状态之前不会启动,并将其传达给异步函数
标签: apache-flink flink-streaming