阿里云DTS原理,阿里云ecs云服务器镜像阿里云DTS原理系统架构架构说明系统高可用数据传输服务内部每个模块都有主备架构,保证系统高可用。容灾系统实时检测每个节点的健康状况,一旦发现某个节点异常,会将链路秒级切换到其他节点。数据源地址动态适配对于数据订阅及同步链路,容灾系统还会监测数据源的连接地址切换等变更操作,一旦发......
系统架构
架构说明
系统高可用
数据传输服务内部每个模块都有主备架构,保证系统高可用。容灾系统实时检测每个节点的健康状况,一旦发现某个节点异常,会将链路秒级切换到其他节点。
数据源地址动态适配
对于数据订阅及同步链路,容灾系统还会监测数据源的连接地址切换等变更操作,一旦发现数据源发生连接地址变更,它会动态适配数据源新的连接方式,在数据源变更的情况下,保证链路的稳定性。
数据迁移基本原理
数据迁移提供多种迁移类型:结构对象迁移、全量数据迁移及增量数据迁移。如果需要实现不停服迁移,需要选择结构对象迁移、全量数据迁移和增量数据迁移。
对于异构数据库之间的迁移,DTS会从源库读取结构定义语法,根据目标数据库的语法定义,将语法重新组装成目标数据库的语法格式,并导入到目标实例中。
全量数据迁移过程持续较久,在这过程中,源实例不断有业务写入,为保证迁移数据的一致性,在全量数据迁移之前会启动增量数据拉取模块,增量数据拉取模块会拉取源实例的增量更新数据,并解析、封装、存储在本地存储中。
当全量数据迁移完成后,DTS会启动增量日志回放模块,增量日志回放模块会从增量日志读取模块中获取增量数据,经过反解析、过滤、封装后迁移到目标实例,从而实现增量数据迁移。
实时同步基础原理
实时同步功能能够实现两个数据源之间的增量数据实时同步。DTS将陆续支持OLTPgt;OLAP的数据实时同步。
同步链路的创建过程如下:
同步初始化
将源实例的历史存量数据在目标实例初始化一份。
增量数据实时同步
当初始化完成后进入两边增量数据实时同步阶段,该阶段DTS将实现源实例和目标实例的数据动态同步。
增量数据实时同步过程,DTS的底层实现模块主要包括:
日志读取模块
日志读取模块从源实例读取原始数据,经过解析、过滤及标准格式化,最终将数据在本地持久化。日志读取模块通过数据库协议连接并读取源实例的增量日志。如果源数据库为RDS MySQL,那么数据抓取模块通过Binlog dump协议连接源库。
日志回放模块
日志回放模块从日志读取模块中请求增量数据,并根据用户配置的同步对象进行数据过滤,然后在保证事务时序性及事务一致性的前提下,将日志记录同步到目标实例。
DTS具备日志读取模块、日志回放模块的高可用,DTS容灾系统一旦检测到链路异常,就会在健康服务节点上断点重启链路,从而有效保证同步链路的高可用。
数据订阅基础原理
数据订阅支持实时拉取RDS实例的增量日志,用户可以通过DTS提供的SDK数据订阅服务端来订阅增量日志,同时可以根据业务需求,实现数据定制化消费。
DTS服务端的日志拉取模块主要实现从数据源抓取原始数据,通过解析、过滤、标准格式化等流程,最终将增量数据在本地持久化。
日志抓取模块通过数据库协议连接并实时拉取源实例的增量日志。例如源实例为RDS MySQL,那么数据抓取模块通过Binlog dump协议连接源实例。
日志拉取模块及下游消费SDK的高可用:
DTS容灾系统一旦检测到日志拉取模块出现异常,就会在健康服务节点上断点重启日志拉取模块,保证日志拉取模块的高可用。
DTS支持在服务端实现下游SDK消费进程的高可用。用户同时对一个数据订阅链路,启动多个下游SDK消费进程,服务端同时只向一个下游消费推快递增量数据,当这个消费进程异常后,服务端会从其他健康下游中选择一个消费进程,向这个消费进程推快递数据,从而实现下游消费的高可用。
版权声明:本文为博主原创文章,遵循CC 4.0 BYSA版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq44714603/article/details/105205150
特别声明:以上文章内容仅代表作者本人观点,不代表ESG跨境电商观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与ESG跨境电商联系。
二维码加载中...
使用微信扫一扫登录
使用账号密码登录
平台顾问
微信扫一扫
马上联系在线顾问
小程序
ESG跨境小程序
手机入驻更便捷
返回顶部