Apache Flink-如何使源函数等待回填状态

时间:2019-02-13 16:19:05

标签: apache-flink flink-streaming

我们使用flink通过连接的流来丰富我们的数据流。

例如:我们的数据流可能是出租车,而我们的丰富数据可能是出租车司机。

考虑这样的拓扑:

BroadcastStream<TaxiDrivers> taxiDrivers = env.addSource(enrichments)
                                              .broadcast(MAP_DESCRIPTOR)

env.addSource(taxiRidesSource())
   .connect(taxiDrivers)
   .process(enrichWithTaxiDrivers())
   .output(someOutput())

如果由于某些原因我们丢失了Flink State,则可以将消息重新发布到taxiDriver源,以再次恢复该状态。

那怎么了?

当我们完成回填状态之前新的士到达时,发生回填状态的问题。

我们曾考虑过缓冲enrichWithTaxiDrivers()函数的丰富性,或将源函数扩展到pause,但都不是一个干净的解决方案。

什么是让主流(出租车)等待或暂停直到回填完成的好方法?

0 个答案:

没有答案