使用onTimer和processElement的Apache Flink超时

问题描述

我正在使用Apache Flink processElement1,processElement2和onTimer流设计模式来实现超时用例。我观察到当我包含超时功能时,系统的吞吐量下降了几个数量级。

关于Flink中onTimer的内部实现的任何提示:是每个键流一个线程(不太可能),还是池/单个执行线程连续轮询缓冲的回调并拾取超时的回调以执行。 / p>

据我所知,Flink基于参与者模型和反应模式(AKKA),该模型鼓励明智地使用几个非阻塞线程,因此,每个键流的onTimer或任何其他模式通常是一个线程不使用!

解决方法

Flink中有两种计时器,即事件时间计时器和处理时间计时器。实现是完全不同的,但是在任何情况下都不应该看到对性能的重大影响。还必须进行其他操作。您可以分享一个可复制的小例子,还是至少向我们展示更多正在发生的事情以及如何进行测量?

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...