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

Flink CDC怎么能保证多个实例不会重复读书数据同一份binlog呢?

Flink CDC去读取binlog的数据到应用程序的时候,如果我的服务是部署多个实例的话怎么能保证多个实例不会重复读书数据同一份binlog呢?

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

    在Flink CDC中,可以通过使用Binlog的GTID(全局事务标识符)来确保多个实例不会读取同一份binlog。

    具体来说,每个实例在开始读取binlog时,都会获取当前已经提交的GTID。然后,在读取binlog时,会检查该binlog是否已经被处理过,即检查其GTID是否小于或等于已经提交的GTID。如果该binlog已经被处理过,则跳过该binlog;否则,将其处理并更新已提交的GTID。

    通过这种方式,可以确保每个实例只读取未被处理过的binlog,从而避免重复读取同一份binlog。同时,由于每个实例都有自己的已提交GTID,因此它们之间也不会互相影响。

    2023-12-12 16:10:06
    赞同 展开评论 打赏
  • server-id 需要配置的 flink这块默认的是一个范围内随机给你取值的 ,flink-cdc 里面配置的server-id参数 每个实例都会伪装成 mysql的从节点读取binlog日志信息image.png
    ,此回答整理自钉群“Flink CDC 社区”

    2023-12-11 22:09:21
    赞同 展开评论 打赏

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

相关产品

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

    更多
    PolarDB-X 2.0 全局 Binlog 与备份恢复能 立即下载
    低代码开发师(初级)实战教程 立即下载
    阿里巴巴DevOps 最佳实践手册 立即下载