用过flink1.17.1版本,有没有遇到wartermark在flink webui显示和通过ctx.currentWatermark()获取的不一致的问题?在flink1.13.2的版本中没这种问题,是使用方法不一样吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
我没有用过 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() 方法使用的是系统的进程时间,所以不会存在时间不一致的问题。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。