igx*_*igx 4 apache-flink flink-streaming
看这篇文章,它说关于水印
现在,我们将水印设置为当前时间 - 5 秒,这告诉 Flink 期望消息最多处理 5 秒 - 这是因为只有当水印通过每个窗口时才会评估它
在那篇文章的后面,它解释了设置允许迟到时:
Flink 不会丢弃消息,除非它超过了 window_end_time + 允许的延迟
由于设置了允许的延迟,实际上导致了窗口的延迟评估?
那么水印的使用和允许迟到实际上有什么区别?什么时候使用哪个?
水印延迟设置了 Flink 在第一次触发窗口之前等待乱序事件的时间下限。
允许的延迟决定了 Flink 将在窗口状态下保留多长时间。当窗口状态仍然可用时到达的任何延迟事件都将再次触发窗口,导致其生成更新的结果。
一旦允许的延迟到期,窗口的状态将被清除,并且任何最晚的事件都将被丢弃或发送到侧面输出。
如果窗口输出的下游使用者可以处理接收像这样的窗口结果的更新(例如,窗口连接到实时仪表板),那么设置相对较短的水印延迟并自由地使用允许的延迟可能是有意义的。另一方面,如果在初始结果之后您无法利用任何内容,您将需要使水印延迟足够大以满足您对准确性/完整性的要求,并将允许的延迟设置为零。
| 归档时间: |
|
| 查看次数: |
1035 次 |
| 最近记录: |