早安,
我想确定kafka队列是否可以保留数据几秒钟,然后再释放数据。
我收到来自kafka主题的消息, 解析数据后,我将其保存在内存中一段时间(10秒)(随着唯一的消息通过而建立),每条消息都有自己的计时器),我想让kafka告诉我该消息已过期(10秒),以便我可以继续执行其他任务。
但是由于flink / kafka是事件驱动的,所以我希望kafka具有某种圆形的定时轮,可以在10秒钟后重现给消费者的消息密钥。
关于如何使用flink窗口或kafka功能进行归档的任何想法?
致谢
答案 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.html,https://kafka.apache.org/21/documentation/streams/developer-guide/processor-api.html。
使用Kafka Streams可以完成许多复杂的事件处理工作。处理器API是较低级别的API,例如,每条处理消息放入状态存储区(Kafka Streams抽象,已复制到changelog主题中),然后使用Punctuator
来检查消息是否已过期。