很多flink tm连接一个MySQL实例拉取binlog,会引起mysql负载和io过高吗?
差不多,Flink TM(Table Module)连接MySQL实例拉取binlog会增加一些MySQL的负载和IO。主要原因有两个:
建立Flink TM与MySQL的连接,会占用一些MySQL的连接数。Flink内部会持有多个连接,以实现高效的binlog读取。
Flink TM从MySQL binlogLog continuously读取数据变更事件,需要MySQL消耗一定的CPU和IO来发送binlog给Flink。特别是在更新和删除比较频繁的时候,MySQL的负载会较高。
但是,幸好Flink TM设计的很智能,内部对MySQL的binlog读取采用了以下优化:
・批处理模式。Flink TM会以批次的形式从MySQL读取binlog,而不是一个事件一个事件的读取,减少了MySQL的负载。
・轮询模式。Flink TM不会持续从MySQL拉取binlog,而是定时轮询,给MySQL一定的“喘息“时间。
・缓冲模式。Flink TM内部会缓冲已读取的binlog事件,不会立即处理,减少网络交互。
会,我目前没有使用到生产 只是测试了 可以实现,具体看你的环境 我测试的结果觉得mysql 应该是目前最成熟的 ,此回答整理自钉群“Flink CDC 社区”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。