问题描述
我正在Flink DataStream API中使用KeyedCoProcessFunction
类来实现类似用例的超时。场景如下:我有一个输入kafka主题和一个输出Kafka主题,一个服务从输入主题中读取内容(处理时间可变),然后将响应发布到输出kafka主题中。
现在要实现超时(必须使用Flink数据流API),我有一个FlinkKafkaConsumer
从kafka输入主题读取,另一个FlinkKafkaConsumer
从kafka输出主题读取。我正在连接两个流,并使用processElement1
注册了一个计时器,并等待触发onTimer
方法(声明了超时)或触发processElement2
之前因此我删除了计时器,并且不声明超时。
在对大型事件进行测试时,我看到NULLPTREXCEPTION
并且怀疑processElement2
在ProcessElement1
之前被触发,在上述情况下,可以从由于任何原因(知道服务处理元素所花费的时间可能需要几秒钟),输出主题就会在从输入主题中读取之前发生,并且在这种情况下,实现上述超时功能的最佳情况是什么严格使用Flink DataStream API ,请提供任何提示?
谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)