卡夫卡轮计时器

时间:2019-02-19 14:25:03

标签: scala timer apache-kafka apache-flink

早安,

我想确定kafka队列是否可以保留数据几秒钟,然后再释放数据。

我收到来自kafka主题的消息, 解析数据后,我将其保存在内存中一段时间​​(10秒)(随着唯一的消息通过而建立),每条消息都有自己的计时器),我想让kafka告诉我该消息已过期(10秒),以便我可以继续执行其他任务。

但是由于flink / kafka是事件驱动的,所以我希望kafka具有某种圆形的定时轮,可以在10秒钟后重现给消费者的消息密钥。

关于如何使用flink窗口或kafka功能进行归档的任何想法?

致谢

2 个答案:

答案 0 :(得分:0)

关于您的最初问题:

  

我想确定kafka队列是否可以保留数据几秒钟,然后释放数据

您可以将log.cleanup.policy设置为delete(这是默认设置),并将retention.ms从默认的604800000(1周)更改为10000

您能否再次说明您要检查的内容,以及Regards部分之后的意思?

答案 1 :(得分:0)

您可以更靠近Kafka Streams库。 https://kafka.apache.org/21/documentation/streams/developer-guide/dsl-api.htmlhttps://kafka.apache.org/21/documentation/streams/developer-guide/processor-api.html

使用Kafka Streams可以完成许多复杂的事件处理工作。处理器API是较低级别的API,例如,每条处理消息放入状态存储区(Kafka Streams抽象,已复制到changelog主题中),然后使用Punctuator来检查消息是否已过期