Kafka Streams:在窗口到期时处理流中的事件老化

时间:2017-03-31 14:33:14

标签: apache-kafka-streams

我目前正在使用kafka流来整理窗口中的相关事件。如果所有相关事件都没有到达窗口内,那么在Kafka流中是否有办法可以处理已过期的事件。这将有助于处理/通知下游应用程序所有相关事件都没有到达进行整理。感谢您的回复 以下是示例
实施例-1:
  - GroupID:g1
  - 活动抵达:E1,10am; E2 10:01 am和E3 10:02 am   - 窗口:会话窗口的不活动持续时间为5分钟   - 结果:所有事件都已成功整理。

例2:
  - 活动抵达:E1,10am; E2 10:01 am,E3不到   - 窗口:会话窗口的不活动持续时间为5分钟   - 结果:触发操作或通过侦听器获取部分通知    上午10:06对E1和E2窗口到期时的整理

2 个答案:

答案 0 :(得分:1)

Kafka Streams中的Windows“不会过期”,但会保持打开以允许处理迟到的数据。

比较How to send final kafka-streams aggregation result of a time windowed KTable?

无法注册任何回叫,

  • 不是“流时间”前进并通过“窗口结束时间”的情况
  • 不是因为窗口最终掉落(即保留期过后)

答案 1 :(得分:0)

还没有尝试过,但是好像窗口的最终结果可以做到 https://kafka.apache.org/24/documentation/streams/developer-guide/dsl-api.html#window-final-results

该想法是检查窗口关闭时是否所有事件都已到达,如果不是这种情况,则触发一些操作。