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

Flink CDC中pgcdc连接的lsn只在主节点更新,从节点不更新lsn,这个情况是cdc的问?

Flink CDC中pgcdc连接的lsn只在主节点更新,从节点不更新lsn,这个情况是cdc的问题还是我pg数据库的问题?

展开
收起
真的很搞笑 2023-08-01 14:50:06 73 0
1 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    你说的是正确的。在pgcdc(Postgres CDC)中,只有主节点会更新LSN(逻辑位序号),从节点不会更新LSN。

    这是因为:

    LSN是用来跟踪pgcdc已经读取过的WAL(写入日志)位置的。主服务器上的WAL文件才是真实的数据变更,从服务器只是主服务器的镜像。

    pgcdc通过在主服务器上启动心跳线程,定期查询新的LSN值,然后使用该LSN值从WAL文件读取数据变更事件。

    从服务器上的只是主服务器的复制,主从复制通常会延迟,所以从服务器当前的LSN值比主服务器小。

    如果pgcdc使用从服务器的LSN值,可能会导致数据丢失,因为从服务器复制过来的数据可能比pgcdc已经消费过的数据还要早。

    所以pgcdc只能使用主服务器的LSN值来保障数据完整性,从服务器的LSN值pgcdc忽略。

    因此,pgcdc只使用主节点的LSN值来跟踪已经消费过的数据范围,从节点的LSN无关。这么设计是为了保证pgcdc最终能捕获到Postgres数据库的所有变更事件。

    2023-08-01 19:29:22
    赞同 展开评论 打赏

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

相关产品

  • 实时计算 Flink版
  • 热门讨论

    热门文章

    相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载