Ham*_*mid 3 apache-kafka apache-flink flink-streaming flink-cep flink-sql
我需要延迟处理某些事件。
例如。我有三个事件(发布在 Kafka 上):
我需要立即处理记录A和C,而记录B需要十分钟后处理。在 Apache Flink 中这是否可行?
到目前为止,无论我研究过什么,“触发器”似乎可能有助于在 Flink 中实现它,但尚未能够正确实现它。
我也查看了 Kafka 文档,但看起来不太可行。
Dav*_*son 5
触发器适用于窗口,但窗口似乎不适合您的用例。
更好的解决方案是将计时器与KeyedProcessFunction. 根据您想要等待 10 分钟的处理时间还是 10 分钟的事件时间,您将选择处理时间计时器或事件时间计时器。
KeyedProcessFunction
您还需要使用 Flink 状态来存储稍后需要处理的事件。
您可以在此处找到流程功能的文档。Flink 训练中还有一些其他示例,请参见此处和此处。
FWIW,Flink 的 Stateful Functions API 可能更适合您正在做的事情,在这种情况下您将使用延迟消息。
归档时间:
4 年,10 月 前
查看次数:
1957 次
最近记录: