问题描述
我正在使用Apache Flink processElement1,processElement2和onTimer流设计模式来实现超时用例。我观察到当我包含超时功能时,系统的吞吐量下降了几个数量级。
关于Flink中onTimer的内部实现的任何提示:是每个键流一个线程(不太可能),还是池/单个执行线程连续轮询缓冲的回调并拾取超时的回调以执行。 / p>
据我所知,Flink基于参与者模型和反应模式(AKKA),该模型鼓励明智地使用几个非阻塞线程,因此,每个键流的onTimer或任何其他模式通常是一个线程不使用!
解决方法
Flink中有两种计时器,即事件时间计时器和处理时间计时器。实现是完全不同的,但是在任何情况下都不应该看到对性能的重大影响。还必须进行其他操作。您可以分享一个可复制的小例子,还是至少向我们展示更多正在发生的事情以及如何进行测量?