我有一组要求如下:
- 消息'T'到达,必须等待5秒'A'中的相应消息到达(使用相同的密钥)。如果它在 5 秒内到达,则发送连接值并发送到下游。如果它没有在 5 秒内到达,则仅向下游发送“T”消息。
- 消息 'A' 到达,必须等待 5 秒才能使 'T' 中的相应消息到达(使用相同的密钥)。如果它在 5 秒内到达,则发送连接值并发送到下游。如果它没有在 5 秒内到达,则仅向下游发送“A”消息。
我目前的想法是做一个 KStream-KStream Sliding Window OUTER join。但是,在向下游发送 (T, null) 或 (null, T) 消息之前不会等待 5 秒(即立即完成)。
我需要等待超时发生,如果没有发生加入,则发送未加入的消息。
我附上了一张图表来帮助理解这些案例。我正在尝试尽可能多地使用 DSL。
任何帮助表示赞赏。