flink CDC 增量同步的问题
一个job运行之后,刚开始同步很快,几乎秒级,再提交一个job 之后,第一个job 同步有较高的延迟,延迟时间 5~40 分钟不等?
Flink CDC 在处理增量同步时,其默认策略是首次运行时进行全量同步,随后便转为增量读取。这种机制对于表数据量较大的情形特别重要,因此在重写 AbstractMessageListener#read 方法以适应大量数据处理的场景时需要格外小心。另一方面,Flink CDC是基于Binlog的CDC,它根据数据库的事务日志来获取数据更改。
在出现第一个job同步延迟的情况下,可能的原因有多种。一种可能是资源竞争,例如任务的资源不足或者任务之间的资源冲突等。另一种可能是由于 Flink CDC 的任务在运行过程中遇到了异常情况导致任务失败。如果任务失败,可以尝试重新启动任务。此外,需要注意的是,Flink CDC会根据所依赖的数据库的更新频率和数据量来进行全量或增量同步,因此当第二个job提交后,对资源的需求量增大可能导致第一个job的同步速度下降。
Flink CDC的同步策略是初次运行时进行全量同步,随后便转为增量读取。在启动之初,Flink CDC会执行一次全表扫描,因此初期的同步速度很快,几乎达到秒级。然而,当您提交另一个job后,首个job的同步速度可能会受到影响,出现较高的延迟,这种延迟的时间长短不一,可能在5到40分钟之间。
如果遇到上述问题,可以尝试以下解决方案:
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。