
典型管理系统架构,Manager(web管理,包含全量同步工具)+Node(工作节点)
manager运行时推送同步配置到node节点(rpc) node节点将同步状态反馈到manager上(rpc) 基于zookeeper,允许多Node节点之间协同工作。
配置信息和同步日志保存在数据库DB中。

Select日志抽取,转换为组件内部事件。
Extract记录反查,补全变更记录。
Transform表名/字段转换;load加载入库。


node可以有三种部署方式:
全部部署在生产机房;
全部部署在灾备(目标端)机房;
分别部署在两个机房中,其中生产机房中的node负责SE阶段,灾备(目标端)机房中的node负责TL阶段,不同机房中的node通过rpc或http通信。
三种方式各有优劣,用户可根据实际环境中的网络速度、机器硬件、数据库性能等条件选择最优方案。
跨IDC工具支持的同步场景:
场景1:获取MySQL数据库增量日志数据(MySQL主备复制实现)


master将改变记录到二进制日志(binary log)中;
slave将master的binary log events拷贝到它的中继日志(relay log);
slave重做中继日志中的事件,将改变反映它自己的数据。
Canal的工作原理
canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议。
mysql master收到dump请求,开始推送binary log给slave(也就是canal)。
canal解析binary log对象(原始为byte流)。
场景2:通过oracle物化视图解决oracle数据源增量数据抽取问题,采用消息队列缓冲减少源库的压力,使用统一格式封装处理与数据同步组件无缝衔接,实现oracle源数据的并行实时传输。

数据抽取
基于Oracle的物化视图日志并行增量订阅/解析。
增量数据放入消息队列,保证顺序性,减少物化视图访问量,便于签收、重传,帮助实现并行加载。
使用统一格式封装处理,兼容数据传输模块。
数据加载
根据目标库类型自动选择数据库引擎,构造对应SQL语句,处理特殊字段类型。
源于Oracle的增量数据多批次并行加载。

更多精彩干货分享
点击下方名片关注
IT那活儿





