第三方组件上线的最佳实践

栏目: IT技术 · 发布时间: 4年前

内容简介:1、这个组件是什么?2、横向产品对比,以及此组件的主要优劣势是什么?

第三方组件上线的最佳实践

第三方组件信息

组件信息介绍

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份腾讯通道材料教你成长

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

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

第三方组件上线的最佳实践

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


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

High Performance Python

High Performance Python

Micha Gorelick、Ian Ozsvald / O'Reilly Media / 2014-9-10 / USD 39.99

If you're an experienced Python programmer, High Performance Python will guide you through the various routes of code optimization. You'll learn how to use smarter algorithms and leverage peripheral t......一起来看看 《High Performance Python》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具