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

Flink CDC多个cdc任务订阅同一个mysql从库, 请问这个什么原因呢?

Flink CDC多个cdc任务订阅同一个mysql从库(一个database 一个任务),实测flink cdc source订阅到的数据,少于mysql的数量,造成了很高的延迟,几个小时。 请问这个什么原因呢? 需要改成整库同步吗?

展开
收起
真的很搞笑 2023-12-11 13:55:21 105 0
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    Flink CDC对多个源数据库的增量变动记录进行捕获,并将其同步到一个或多个数据目的地。在此过程中,还可以对数据进行一定的处理,例如过滤、关联、分组、统计等。在您的情况下,如果发现Flink CDC source订阅到的数据少于MySQL的数量,造成了很高的延迟,这可能有几个原因:

    1. Flink CDC任务的并行度设置可能不够高,导致资源未能充分利用来提高同步速度。
    2. 检查Flink作业的内存配置是否正确。如果配置不当,可能会导致作业执行缓慢。
    3. 检查Flink作业的CPU配置是否正确。同样,如果配置不当,可能会影响作业性能。
    4. 可能存在一些其他未被注意到的性能瓶颈或者错误。
    2023-12-12 14:19:43
    赞同 展开评论 打赏
  • 任务多了好像不行,任务多了会给source造成很大的压力 你的延迟看看是不是带宽不够反压的 ,此回答整理自钉群“Flink CDC 社区”

    2023-12-11 22:24:25
    赞同 展开评论 打赏
  • Flink CDC订阅到的数据少于MySQL的实际数据,且存在较高的延迟,可能有以下几个原因:

    1. 数据源过滤:

      • 确保你的Flink CDC任务没有误配置了表或列的过滤条件,导致某些数据被忽略。
    2. 数据库负载高:

      • 如果MySQL数据库的负载很高,可能会导致CDC无法及时处理所有变更事件。
      • 可以通过监控数据库性能指标(如CPU、磁盘I/O等)来确定是否存在这个问题。
    3. 网络问题:

      • 检查网络连接是否稳定,确保Flink CDC能够及时获取到MySQL的变更日志。
    4. 并发冲突:

      • 如果多个Flink CDC任务同时订阅同一个数据库的更改,可能会发生并发冲突。
      • 考虑调整任务的并行度或者使用不同的分区策略来避免这种冲突。
    5. 错误处理与重试:

      • Flink CDC在处理过程中可能会遇到错误,这时会进行重试。如果重试次数过多或重试时间过长,可能会导致数据延迟。
      • 查看Flink CDC的任务日志,看看是否有异常情况发生,并根据需要调整错误处理和重试策略。
    6. CDC插件版本:

      • 确保使用的Flink CDC插件版本与你的Flink和MySQL兼容,并且没有已知的问题。
    7. 数据冲突:

      • 如果在Flink CDC读取数据的过程中,MySQL上的数据发生了更新,可能导致一些数据未被读取到。
    8. 资源限制:

      • 确保Flink集群有足够的资源来运行CDC任务,包括内存、CPU和磁盘空间。

    针对你的情况,可以尝试以下解决方案:

    • 调整Flink CDC任务的参数,比如增加并行度、增大作业的超时时间等。
    • 检查和优化数据库的性能,减少负载。
    • 使用更稳定的网络环境,保证Flink CDC与MySQL之间的通信不受影响。
    • 尝试将单个数据库的多个表合并到一个CDC任务中同步,这可能有助于提高整体效率。
    • 对于需要实时性的关键数据,可以考虑采用其他方式进行同步,如二进制日志复制(binlog replication)。
    2023-12-11 16:20:45
    赞同 展开评论 打赏

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

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    搭建电商项目架构连接MySQL 立即下载
    搭建4层电商项目架构,实战连接MySQL 立即下载
    PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

    相关镜像