分布式事务随笔
场景:
从招行转1w到工行;可以分解为下面四个步骤
1. A节点为ATM, B节点为招行数据库,C节点为工行数据库; A发出转账命令;
2.A通知B 个人账户-1W元;
3.A通知C 个人账户+1W元;
4.A通知用户操作成功或者失败。
通过XA事务,可以对不同的数据库进行操作,
比如David 从上海转1W到北京用户Mariah 银行卡中;
@bank:Shanghai:
UPDATE account SET money = money-10000 WHERE user='David';
@bank:Beijing:
UPDATE account SET money = money+10000 WHERE user='Mariah';
如果操作不能全部提交或者回滚,那么任何一个节点出现问题都会导致严重后果。

RM就是MYsql数据库,TM就是连接mysql的客户端,
第一阶段:所有参与全局事务的节点开始准备,告诉TM已经准备好提交。
第二阶段:TM告诉RM执行ROLLBACK还是COMMIT。一旦存在任何一个节点不能提交,那么所有节点都被告知要ROLLCBACK;
分布式事务需要多一次的prepare操作,保证所有节点收到同意之后再COMMIT或者ROLLBACK;

浙公网安备 33010602011771号