问题描述
只是好奇,如果数据源有一段时间没有发出数据,Flink算子是否仍然收到水印?图片中的 Low Watermark
会继续前进还是保持静止?
解决方法
当源完全空闲时水印是否会继续前进取决于WatermarkStrategy
。在这些情况下,内置策略(即 BoundedOutOfOrderness
或 MonotonousTimestamps
)都不会推进水印,但有些人使用自定义策略来检测空闲并根据墙的通过推进水印 -时钟时间。
如果一些源分区/分片/分片空闲而另一些则没有,那么这可能导致水印无法推进。某些来源支持实施 withIdleness
选项的水印策略,该选项可克服此问题 [1]。