其他
分库分表后,如何保证数据一致性?
来自:掘金,作者:小泥洼链接:https://juejin.cn/post/6933003178661462023前言通过对数据的垂直拆分或水平拆分后,我们解决了数据库容量、性能等问题,但是将会面临数据迁移和数据一致性的问题。在数据迁移方面,需要考虑如何快速迁移、平滑迁移、不停机的迁移等。待数据迁移完毕后,还需要校验数据的完整性。数据一致性方面,要根据的业务来判断是否要必要引入分布式事务,如果需要引入分布式事务,需要斟酌是采用XA,还是基于BASE的柔性事务。数据迁移数据迁移是很容易出故障的一个环节,需要考虑怎么更加平滑的迁移旧数据到新的数据库和系统,以及达到数据准确、快速迁移、减少停机、对业务的影响小等,特别是异构的数据结构情况下,难度更大。全量全量迁移的过程如下:业务系统停机。数据库迁移,校验数据一致性。然后业务系统升级,接入新的数据库。缺点:需要业务系统停机迁移时间较长,对业务影响较大。如果是异构数据的话,需要使用程序来处理,迁移时间更长。全量+增量全量+增量迁移的方式,需要依赖数据本身的创建时间,步骤如下:先同步数据到最近的某个时间戳(创建时间)。然后发布系统升级维护的通知。然后同步最近一段时间变化的数据。最后升级系统,接入新的数据库。全量+增量的同步相比全量同步的方式,大大的减少了系统停机的时间,对业务影响较小。binlog+全量+增量binlog+全量+增量是通过从数据库的主库或者从库解析和重新构造数据,实现复制。通常情况下都需要中间件等工具的支持,一般需要中间件等工具的支持。可以实现多线程、断点续传、全量和增量数据的同步,还可以实现自动扩容和缩容。常见的工具有:Canal、ShardingSphere-scaling等分布式事务XA分布式事务XA分布式事务,是数据库本身支持的协议,具备强一致性。XA分布式事务的组件:应用程序(Application
2023年1月3日