Flink CDC以前旧版本 cdc2.2.1 默认一个source表下如果不配置线程池,默认是多少个,现在如果很多source表,每个最低给1个 会不会产生大量的连接呢?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在Flink CDC的旧版本(如cdc 2.2.1)中,如果不显式配置线程池,默认情况下每个MySQL CDC Source表会使用一个独立的Binlog连接。这意味着,如果作业中有多个Source表,并且未开启Source复用功能,每个Source表都会创建一个独立的Binlog连接。
默认连接数:
server-id
或线程池参数,每个Source表会默认分配一个独立的Binlog连接。多Source表场景下的连接数问题:
如何优化连接数:
table.optimizer.source-merge.enabled
参数来开启Source复用功能。开启后,具有相同配置的MySQL CDC Source表会合并复用Binlog连接,从而减少连接数。
SET 'table.optimizer.source-merge.enabled' = 'true';
注意事项:
SET 'sql-gateway.exec-plan.enabled' = 'false';
pipeline.operator-chaining
设为false
,因为这会增加序列化和反序列化的开销,尤其是在合并的Source较多时。server-id
范围或减少Source表的数量来缓解连接压力。希望以上信息能够帮助您更好地理解和优化Flink CDC的连接管理!
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。