数据库分库分表事务解决方案 (2)

数据库分库分表事务解决方案

3.1 流水执行任务

流水处理调度任务就是通过扫描待处理的流水,然后通知业务系统该执行哪一条流水。

示意图如下:

数据库分库分表事务解决方案

时序图如下:

数据库分库分表事务解决方案

3.2 流水校验任务

流水校验任务就是要比较主库和分库中的流水记录,对执行未成功的流水通知业务系统进行重新处理,如果多次重试失败则发出告警。

流程示意图:

数据库分库分表事务解决方案

时序图:

数据库分库分表事务解决方案

四、总体流程图

分库分表后的业务时序图如下L

数据库分库分表事务解决方案

说明:

因为写流水也是在事务里面,因此只有在事务提交后,流水才会被调度任务处理

由于只是保证最终一致性,因此流水处理会存在延迟,保证后置流程应不依赖当前流水的处理结果

五、数据迁移方案

数据迁移主要分为3个阶段。

第一个阶段,双写双读

注意:通知读写主库和分库,并做比对,以主库为主,如果读取的结构不一致,发出告警

第二个阶段,历史数据迁移

注意:和DBA确认以后进行

第三个阶段,双写单读

注意:防止切换过程出现问题,数据不会丢失

第四个阶段,单写单读

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zydgjy.html