AT模式(Atomic Transaction)是一种较简单的分布式事务实现方式。其主要思想是:
将本地事务和全局事务组合为一个事务,通过补偿机制保证最终的数据一致性。
AT模式的具体实现步骤如下:
1. 启动全局事务,业务系统调用多个本地事务。
2. 本地事务按顺序执行,每个事务都独立提交或回滚。
- 本地事务按业务逻辑在不同的数据库执行。
- 每个本地事务均在单独的数据库连接中执行,相互独立。
3. 如果所有本地事务成功提交,则全局事务提交,结束事务。
- 此时各数据库的数据更新已经生效,事务结束。
4. 如果有本地事务回滚,全局事务进入补偿阶段:
- 全局事务获取每个已提交本地事务的补偿方法。
- 调用已提交本地事务的补偿方法,让其回滚相应的更新。
- 再回滚未执行的本地事务。各数据库数据恢复至事务开始状态。
- 全局事务回滚,结束补偿过程。
补偿机制:
每个本地事务在执行更新操作时,要确保这些更新具有可补偿性,即能通过某个补偿操作撤销本地事务的更新结果。
当全局事务需要回滚时,会调用每个已提交本地事务的补偿方法,逐一撤销其更新结果,直到各数据库的数据恢复至全局事务开始前的状态。
AT模式虽然实现简单,但要求业务能容忍数据最终一致,并且本地事务之间没有依赖关系。同时需要为每个本地事务实现相应的补偿操作,较为麻烦。AT模式只能保证最终一致性,无法保证隔离性。#软件架构#