Flink CDC里 这个在cdc 3.0.1还是会报,2.2.1及以下的版本没这个问题,高过这个版本的,连续启动多个job,并且job里有使用到相同的source表时,就会报这个,一般启动到第二 第三个job 基本就能复现。怎么解决呢?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您描述的问题,Flink CDC在3.0.1版本中会出现报错,而在2.2.1及以下版本中没有此问题。当连续启动多个Job,并且这些Job中有使用到相同的Source表时,通常在启动第二个或第三个Job时就会复现该问题。以下是针对该问题的分析和解决方案:
问题现象
可能原因
max_connections
参数来解决。
SHOW VARIABLES LIKE '%max_connections%';
SET GLOBAL max_connections = 500;
database.history
或snapshot.mode
)。snapshot.mode
设置为never
以避免全量同步冲突。监控MySQL Binlog清理策略
确保MySQL的Binlog保留时间足够长,避免因Binlog被清理导致Job失败。建议将expire_logs_days
设置为7天或更长:
SET GLOBAL expire_logs_days = 7;
避免使用只读实例
如果使用阿里云RDS MySQL,建议不要让Flink CDC源表读取只读实例的数据,因为只读实例的Binlog可能不可用。
Session集群的使用限制
如果使用Session集群进行调试,请注意其资源限制和稳定性风险,避免在生产环境中使用。
通过上述方案,您可以有效解决Flink CDC 3.0.1及以上版本中多个Job共享相同Source表时的冲突问题。建议优先尝试分批启动Job和升级Flink CDC版本,如果问题仍然存在,再考虑调整MySQL配置或分离Source表。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。