浅谈数据同步

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 数据同步在后端是非常常见的场景,数据同步的稳定性和实时性对业务有非常重要的影响。数据同步的方式主要有全量同步和增量同步两种,本文主要介绍上述两种方式的差异,以及常用的解决方案。

数据同步指的是将数据从一个数据库迁移至另外一个数据库,可以是同构数据库(例如从MySQL到MySQL),也可以是异构数据库(例如从MySQL到Elasticsearch),无论那种形式,同步的方法无外乎分为全量同步和增量同步。

全量同步

全量同步是指定时从源数据库中读取全量数据,然后直接写入到目的数据库中。当数据量特别大时,可以分批次读取和写入。然而,这其实是一种深翻页的操作,这会给数据库带很大的压力,会影响线上正常业务的响应时长。


为了配合全量同步,在每次开始同步之前,目的数据库需先清理现存数据,或者将新数据写入到临时表中,同步完成后再删除原数据。


综上所述,全量同步的优点是实现简单,无需借助其他数据同步中间件。但缺点却非常明显,数据更新不及时,同步时占用CPU和内存资源较多,最坏的情况下,会占用两倍磁盘空间。


增量同步

增量同步是指首次同步时采取全量同步的方式,之后只同步数据的变动,例如新增、更新、删除。增量同步需要解析数据库本身的log日志,例如MySQL的binlog。有许多中间件可以帮助我们来实现增量同步,例如canal、datax等。针对异构数据库同步的场景,建议使用kafka等消息中间件,来进行数据清洗、格式转化等操作,灵活性更大。


总结

建议在任何场景下,都要使用增量同步的方式。既能保证数据的实时性,又能降低同步时对源数据库的影响。贪图省事儿,大干快上,后期只能偿还技术债。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
IDEA第一次上传项目到gitlab
IDEA第一次上传项目到gitlab步骤
1578 1
|
运维 监控 测试技术
如何确保微服务架构的高可用性?
如何确保微服务架构的高可用性?
445 57
|
数据采集 传感器 监控
如何在LabVIEW中使用FPGA模块
如何在LabVIEW中使用FPGA模块
626 1
|
存储 Java
Java 中的静态(static)
【10月更文挑战第15天】静态是 Java 语言中一个非常重要的特性,它为我们提供了一种方便、高效的方式来管理和共享资源。然而,在使用过程中,我们需要谨慎考虑其优缺点,以确保代码的质量和可维护性。
|
敏捷开发 小程序 持续交付
【规范】Git分支管理,看看我司是咋整的
本文介绍了Git分支管理规范的重要性及其在企业中的应用。通过规范化的分支管理,可加速团队协作、确保代码质量、维护主分支稳定,并支持敏捷开发。文中详细描述了主分支(如master、develop)和辅助分支(如feature、hotfix)的作用,并提供了实际开发流程示例,包括开发前、开发中、提测、预生产和部署上线等阶段的操作方法。旨在帮助团队提高效率和代码质量。
3697 0
【规范】Git分支管理,看看我司是咋整的
|
Kubernetes 架构师 Java
史上最全对照表:大厂P6/P7/P8 职业技能 薪资水平 成长路线
40岁老架构师尼恩,专注于帮助读者提升技术能力和职业发展。其读者群中,多位成员成功获得知名互联网企业的面试机会。尼恩不仅提供系统化的面试准备指导,还特别针对谈薪酬环节给予专业建议,助力求职者在与HR谈判时更加自信。此外,尼恩还分享了阿里巴巴的职级体系,作为行业内广泛认可的标准,帮助读者更好地理解各职级的要求和发展路径。通过尼恩的技术圣经系列PDF,如《尼恩Java面试宝典》等,读者可以进一步提升自身技术实力,应对职场挑战。关注“技术自由圈”公众号,获取更多资源。
|
canal 缓存 关系型数据库
Spring Boot整合canal实现数据一致性解决方案解析-部署+实战
Spring Boot整合canal实现数据一致性解决方案解析-部署+实战
|
运维 监控 Devops
【运维杂谈】DevOps是什么意思?
【运维杂谈】DevOps是什么意思?
797 0