是否可以在Kafka处理器中设置执行超时?

时间:2020-02-25 09:12:19

标签: java apache-kafka apache-kafka-streams

我正在使用Kafka Streams处理来自事件的一些输入数据,并且我想对该数据执行各种布尔返回函数。主要限制是每个处理器的运行时间不能超过自定义参数execution_timeout定义的时间。如果执行时间超过该阈值,则将返回默认值(真或假,取决于每个处理器)。

我经历了一些问题,甚至发现了一个类似的问题here;但就我而言,我没有使用任何map / foreach函数。相反,我选择了Kafka的Processor API,因为我需要在每个处理器内部执行任意代码。

在寻找解决方案时,我偶然发现了两个常数

  • StreamsConfig.COMMIT_INTERVAL_MS_CONFIGcommit.interval.ms
  • StreamsConfig.POLL_MS_CONFIGpoll.ms

但意识到它们并非旨在限制process方法的执行时间。

Kafka Streams中是否有一个临时机制来解决此类问题?如果可能的话,我想知道是否有不涉及标准Java线程的解决方案(例如,实例化一个带有Futures的ThreadPool对象,并在一段时间后捕获InterruptedException)。

0 个答案:

没有答案