开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

flinkcdc mysqlbinlog 增量阶段 source只支持单个reader吗?

flinkcdc mysqlbinlog 增量阶段 source只支持单个reader吗,也就说source设置多并行度的话 只有一个在度,其他都在空闲吗?

展开
收起
真的很搞笑 2023-12-19 08:08:41 51 0
3 条回答
写回答
取消 提交回答
  • 在Apache Flink的MySQL CDC连接器(通常是通过Debezium实现)中,对于增量阶段的数据读取,确实存在这样的设计考量。在处理MySQL的binlog时,由于binlog是按照顺序写入的日志文件,为了保证事务的一致性和有序性,通常仅能由一个reader来消费。

    具体来说,在Flink CDC从MySQL同步数据的过程中,当进入binlog读取阶段后,即使设置了多个并行度,也只能有一个并行任务实际在读取binlog,这是因为binlog中的事件是按序排列的,不能并发处理以避免乱序问题。其他并行任务则可能处于等待状态或分配到其他表的快照读取任务上。

    不过,Flink MySQL CDC连接器在处理快照阶段时可以利用多并行度优势,将表的初始快照分割成多个块,并分配给不同的并行任务进行读取,这样可以加快全量数据加载的速度。但一旦进入binlog读取阶段,为了保证消息的有序和幂等性,通常会限制为单个并行任务处理binlog。

    2023-12-30 12:32:01
    赞同 展开评论 打赏
  • 改成kakfa一层 ,此回答整理自钉群“Flink CDC 社区”

    2023-12-19 16:42:05
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在Flink CDC的增量阶段,确实只支持单个reader。即使在source设置多并行度的情况下,也只有一个并行度在工作,其他的都会处于空闲状态。这是因为binlog增量阶段只支持单并发模式。当Flink CDC刚启动时,它会进行全表扫描,所以这里可以使用多并行度。但是进入到增量同步的阶段后,就变成单并行度了。

    2023-12-19 14:31:18
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载