第三方组件信息

组件信息介绍

1、这个组件是什么?

2、横向产品对比,以及此组件的主要优劣势是什么?

4、你选择这个组件的原因是什么?

工作原理

1、其他关键信息(如配置的相关信息)

应用场景

组件测试

测试环境搭建:

测试环境不局限于硬件环境,不管是理论的区分还是硬件的区分都可以, 主要是必须从某个角度进行环境区分

1、需要在开发机搭建的环境提前:拿到第三方组件信息发送环境搭建的申请邮件(环境搭建包括但不局限于自建服务和购买云服务)

2、输出测试结论,对第三方组件性能进行评估

mirror环境搭建:

测试环境结束后进入mirror环境测试,需要提前告知运维人员进行mirror环境准备工作,mirror测试完成之后输出测试结论,以及评估上线风险,和运维人员共同协商解决方案。

组件上线

线上环境搭建:

环境搭建完成之后模拟测试,配置组件 监控项 ,进行监控测试,及时调整监控策略,组件上线之后的一个周期需要投入精力观察线上运行情况,进行必要信息记录,完成第三方组件上线文档输出。

:warning: 注意信息

1)组件信息介绍这一部分是在调研期间完成,开始测试之前需要将组件信息介绍这一部分发送邮件同步。

2)之后开始准备测试等环境,收集相关测试结果,测试完成之后邮件形式同步测试结果

3)搭建mirror环境,收集相关测试结果,mirror测试完成之后邮件形式同步mirror测试结果

4)汇总以上+线上实际运行情况形成沉淀进行同步。

范文

拿之前在迁移数据库中做过的DTS数据迁移服务作为简单的范文介绍,《 自建MySQL数据库迁入云服务 》。还有一些沉淀比如: 消息中间件kafka全面解析 、Amazon SQS消息队列,这些前置沉淀就是第三方组件上线需要跟大家同步的信息,供参考。

第三方组件信息

组件信息介绍:

1、DTS是数据传输服务,集数据迁移/订阅/同步于一体,构建安全、可扩展、高可用的数据架构。

2、横向产品对比,以及此组件的主要优劣势是什么?

  • 使用mysqldump以及工具进行数据传输

    • 无法满足实时同步,线上测试

    • 数据量大导出+导入时间过长

    • 数据导出有泄露风险

  • 使用DTS可以有效解决mysqldump带来的问题且主要优势如下:

    • DTS具备链路稳定性和数据可靠性

    • 数据传输支持同/异构数据源之间的数据交互,提供数据迁移/订阅/同步交互功能

    • 支持节点的故障容灾,可实现链路的秒级恢复

    • 支持断点续传,可有效解决因硬件、网络等异常导致的传输中断。

4、你选择这个组件的原因是什么?

要进行数据库从自建mysql迁移的Aliyun的RDS mysql服务中。迁移过程中需要保证 数据实时传输且 保证数据的完整性,在迁移过程中尽量不对业务有影响。DTS可以满足实时传输,可以在前期的测试结束之后将线上业务中对数据库读的量 提前迁移到RDS进行线上验证,DTS可以满足相关需求,且有强大的售后服务和迁移过程中的在线支持,能够完整保证服务在迁移过程中运行的稳定性。

工作原理:

1、系统架构(官网提供)

架构说明

  • 系统高可用

    数据传输服务内部每个模块都有主备架构,保证系统高可用。容灾系统实时检测每个节点的健康状况,一旦发现某个节点异常,会将链路秒级切换到其他节点。

  • 数据源地址动态适配

    对于数据订阅及同步链路,容灾系统还会监测数据源的连接地址切换等变更操作,一旦发现数据源发生连接地址变更,它会动态适配数据源新的连接方式,在数据源变更的情况下,保证链路的稳定性。

2、数据迁移基本原理

数据迁移提供多种迁移类型:结构对象迁移、全量数据迁移及增量数据迁移。如果需要实现不停服迁移,需要选择结构对象迁移、全量数据迁移和增量数据迁移。

对于异构数据库之间的迁移,DTS会从源库读取结构定义语法,根据目标数据库的语法定义,将语法重新组装成目标数据库的语法格式,并导入到目标实例中。

全量数据迁移过程持续较久,在这过程中,源实例不断有业务写入,为保证迁移数据的一致性,在全量数据迁移之前会启动增量数据拉取模块,增量数据拉取模块会拉取源实例的增量更新数据,并解析、封装、存储在本地存储中。

当全量数据迁移完成后,DTS会启动增量日志回放模块,增量日志回放模块会从增量日志读取模块中获取增量数据,经过反解析、过滤、封装后迁移到目标实例,从而实现增量数据迁移。

我们在迁移过程中使用到了DTS的增量迁移也就是实时同步

3、实时同步基础原理

实时同步功能能够实现两个数据源之间的增量数据实时同步。DTS将陆续支持OLTP->OLAP的数据实时同步。

同步链路的创建过程如下:

  • 同步初始化

    将源实例的历史存量数据在目标实例初始化一份。

  • 增量数据实时同步

    当初始化完成后进入两边增量数据实时同步阶段,该阶段DTS将实现源实例和目标实例的数据动态同步。

增量数据实时同步过程,DTS的底层实现模块主要包括:

  • 日志读取模块

    日志读取模块从源实例读取原始数据,经过解析、过滤及标准格式化,最终将数据在本地持久化。日志读取模块通过数据库协议连接并读取源实例的增量日志。如果源数据库为RDS MySQL,那么数据抓取模块通过Binlog dump协议连接源库。

  • 日志回放模块

    日志回放模块从日志读取模块中请求增量数据,并根据用户配置的同步对象进行数据过滤,然后在保证事务时序性及事务一致性的前提下,将日志记录同步到目标实例。

应用场景:

不停机迁移数据库 (我们的场景就是不停机迁移数据库)

数据异地灾备

异地多活

组件测试

在这里简单介绍一下测试过程,无法提供截图信息供参考

1、使用DTS进行数据同步,同步完成之后进行数据验证,当时是写脚本进行数据比对,主要校验的表(数据校验代替测试测试阶段)

2、mirror测试阶段

保持使用DTS数据实时同步中,切换mirror环境的数据库连接读的地址到RDS上面进行数据读取,测试同学配合验证mirror环境读数据相关的数据验证。

组件上线

这里的组件上线就是保持DTS数据同步,切换线上环境数据库读的量到RDS上面进行数据读取,线上实测DTS同步的数据 。

以上是大概的范文示例,由于组件或服务不同应用的场景也不同,请参照第三方组件上线必读完成组件上线相关内容。

拖地先生,从事互联网技术工作,在这里每周两篇文章,聊聊日常的实践和心得。往期推荐:

说说这个公众号

平均响应1000ms到200ms,PHP和Go那家强?

崩溃率从1%到0.02%,iOS稳定性解决之道

七招优化Android包体减少30%

技术产品职业瓶颈?29份腾讯通道材料教你成长

低头赶路,也别忘了抬头看天

加班能解决交付的期望么?

如果对你有帮助,让大家也看看呗~

相关文章