暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

跨IDC同步工具及常用场景介绍

IT那活儿 2021-06-12
4638
一. 跨IDC同步工具简介
  1. 典型管理系统架构,Manager(web管理,包含全量同步工具)+Node(工作节点)

    manager运行时推送同步配置到node节点(rpc)
    node节点将同步状态反馈到manager上(rpc)
  2. 基于zookeeper,允许多Node节点之间协同工作。

  3. 配置信息和同步日志保存在数据库DB中。

  • Select日志抽取,转换为组件内部事件。

  • Extract记录反查,补全变更记录。

  • Transform表名/字段转换;load加载入库。

二. 三种部署方式

node可以有三种部署方式:

  1. 全部部署在生产机房;

  2. 全部部署在灾备(目标端)机房;

  3. 分别部署在两个机房中,其中生产机房中的node负责SE阶段,灾备(目标端)机房中的node负责TL阶段,不同机房中的node通过rpc或http通信。

三种方式各有优劣,用户可根据实际环境中的网络速度、机器硬件、数据库性能等条件选择最优方案。

三. 跨IDC同步工具常用应用场景

跨IDC工具支持的同步场景:

生产中常用的源端数据库类型为Oracle、MySQL、分布式TeleDB、PostgreSQL
常用的目标端类型为Oracle、MySQL、分布式TeleDB、PostgreSQL、Kafka。

场景1:获取MySQL数据库增量日志数据(MySQL主备复制实现)

  1. master将改变记录到二进制日志(binary log)中;

  2. slave将master的binary log events拷贝到它的中继日志(relay log);

  3. slave重做中继日志中的事件,将改变反映它自己的数据。

Canal的工作原理

  1. canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议。

  2. mysql master收到dump请求,开始推送binary log给slave(也就是canal)。

  3. canal解析binary log对象(原始为byte流)。

场景2:通过oracle物化视图解决oracle数据源增量数据抽取问题,采用消息队列缓冲减少源库的压力,使用统一格式封装处理与数据同步组件无缝衔接,实现oracle源数据的并行实时传输。

数据抽取

  1. 基于Oracle的物化视图日志并行增量订阅/解析。

  2. 增量数据放入消息队列,保证顺序性,减少物化视图访问量,便于签收、重传,帮助实现并行加载。

  3. 使用统一格式封装处理,兼容数据传输模块。

数据加载

  1. 根据目标库类型自动选择数据库引擎,构造对应SQL语句,处理特殊字段类型。

  2. 源于Oracle的增量数据多批次并行加载。

END

更多精彩干货分享

点击下方名片关注

IT那活儿

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论