使用KeyedCoProcessFunction的Flink超时以及FlinkKafkaConsumer的读取顺序

问题描述

我正在Flink DataStream API中使用KeyedCoProcessFunction类来实现类似用例的超时。场景如下:我有一个输入kafka主题和一个输出Kafka主题,一个服务从输入主题中读取内容(处理时间可变),然后将响应发布到输出kafka主题中。

现在要实现超时(必须使用Flink数据流API),我有一个FlinkKafkaConsumer从kafka输入主题读取,另一个FlinkKafkaConsumer从kafka输出主题读取。我正在连接两个流,并使用processElement1注册了一个计时器,并等待触发onTimer方法(声明了超时)或触发processElement2之前因此我删除了计时器,并且不声明超时。

在对大型事件进行测试时,我看到NULLPTREXCEPTION并且怀疑processElement2ProcessElement1之前被触发,在上述情况下,可以从由于任何原因(知道服务处理元素所花费的时间可能需要几秒钟),输出主题就会在从输入主题中读取之前发生,并且在这种情况下,实现上述超时功能的最佳情况是什么严格使用Flink DataStream API ,请提供任何提示?

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)