全部产品
云市场

原理架构

更新时间:2019-12-26 21:29:00

本文简单介绍数据同步服务的整个系统架构及基本实现原理。

系统架构

数据同步服务的逻辑架构图:
逻辑架

  • 全量同步: 负责将表数据从源端数据库同步到目的端数据库,支持异构数据库间同步。
  • 增量同步:负责将源端的增量数据同步到目的端,主要包含 Store 和 JDBCWriter 两个组件。
    • 存储:采集源端 DB 的变更到本地存储,支持 MySQL、Oracel、OB 等多种数据库的变更采集;不同的源数据库类型有不同的存储系统。
    • 目标端 Writer 插件:根据存储中的变更数据,将变更在目的端数据库进行重放,实现增量同步功能。
  • 全量校验:对源、目的端对应表数据进行数据一致性的全量校验。
  • 增量校验:对源、目的端增量数据进行一致性校验。
  • 管理控制台:负责数据同步任务的创建、状态查看、管理以及容灾等功能。
  • 元信息数据库:所有同步任务的状态使用自身的元信息数据库保存。
  • 数据订阅 Client SDK 与 JDBCWriter 的职责和组件关系类似,被数据订阅者依赖用于订阅数据。

数据同步任务流程

包含全量同步的数据同步场景下,任务的实际流程如下图所示:
任务流程

  1. T1 时刻创建存储,开始抓取 T1-1 分钟时间的增量数据;
  2. 存储创建完成并检查存储处理于正常同步中之后,T2 时刻创建全量 DumpWriter,并开始同步 T2 时刻的全量数据;
  3. 在 T3 时刻完成了全量同步,这时 T2 到 T3 时间段的增量数据是在存储中;
  4. T4 时间创建增量 Writer,并从 T1 时刻开始拉取增量数据。T1 小于 T2,因此数据不会漏掉,存储的数据从 T1-1 分钟的位点开始拉取,做一定冗余。