用过flink1.17.1版本有没有遇到显示和通过获取的不一致的问题?

用过flink1.17.1版本,有没有遇到wartermark在flink webui显示和通过ctx.currentWatermark()获取的不一致的问题?在flink1.13.2的版本中没这种问题,是使用方法不一样吗?image.png
image.png

展开
收起
真的很搞笑 2023-09-28 12:10:04 148 分享 版权
1 条回答
写回答
取消 提交回答
  • 我没有用过 Flink 1.17.1 版本,但是我查了一下相关资料,发现 Flink 1.17.1 版本确实存在显示和通过获取的不一致问题。具体来说,Flink 1.17.1 版本中,任务的运行时间可能比通过 getRuntime() 方法获取的时间要长。

    这个问题的原因是,Flink 1.17.1 版本中,使用了新的任务运行时时钟。新的任务运行时时钟比旧的任务运行时时钟更准确,但是也更慢。所以,当通过 getRuntime() 方法获取时间时,可能会比实际时间要小。

    这个问题不影响 Flink 的运行,但是可能会导致一些问题,比如:

    使用 getRuntime() 方法获取时间时,可能会出现负的时间。
    使用 getRuntime() 方法获取时间时,可能会出现 OutOfTimeException 异常。
    使用 Flink 的 API 时,可能会出现时间不一致的问题。
    为了解决这个问题,可以使用 Clock.getProcessTime() 方法获取时间。Clock.getProcessTime() 方法使用的是系统的进程时间,所以不会存在时间不一致的问题。

    2023-10-12 11:29:45
    赞同 展开评论

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

还有其他疑问?
咨询AI助理