我们正在构建一个具有两个流的应用程序:
我们要连接两个流以获取共享状态,以便第一个流可以使用第二个状态进行充实。
每天大约更新镶木地板文件(第二流的来源),这将需要我们清除第二流的状态并重建(可能需要2分钟左右)。
问题是,我们可以在此过程运行时阻止/延迟来自第一流的消息吗?
谢谢。
答案 0 :(得分:1)
不幸的是,目前没有直接/简便的方法可以将一个流阻止在另一个流上。典型的解决方案是在加载(或重新加载)浓缩流时缓冲摄取流。
您可以尝试的一种方法是根据某些外部触发器将摄取流包装到一个知道何时不生成数据的自定义SourceFunction
中(这与您知道自己拥有实木复合地板数据重新加载。
答案 1 :(得分:1)
听起来有点像您的案例,类似于Flip-23,它探讨了Apache Flink中的模型服务。
我认为这全都归结为如何(以及是否)锁定静态流:
ListState
用作缓冲区,但是如何访问它取决于数据的形状。如果您分享了有关数据形状的更多信息(例如,您是否正在加入钥匙?您只是在服务模型还是其他?),这可能会有所帮助。