第五章的作业
来源:5-5 本章作业

慕斯卡3278568
2023-03-20
假设从A账户转账5000元到B账户,那么可以有一个参与者负责与A账户的远程接口对接,命名为参与者A,一个参与者负责与B账户的远程接口对接,命名为参与者B。
1,协调者通知参与者A从账户A中扣除5000
2.1,若1返回成功,协调者通知参与者B在B账户中增加5000
2.2, 若1返回失败,协调者放弃操作后面的操作
2.3,若1返回超时,协调者通知参与者A对A账户的操作进行rollback,并放弃后面的操作。
3.1 ,若2.1返回成功,协调者通知参与者A对A账户的操作进行 commit(如果银行的远程接口提供commit)
3.2 , 若2.1返回失败或者超时,协调者通知参与者A对A账户的操作进行 rollback(如果银行的远程接口提供rollback)
4.1,如果3.1返回成功,则通知参与者B 对B账户的操作进行commit
4.2,如果3.1返回失败或者超时,则通知参与者B 对B账户的操作进行rollback
整个过程中最难的我感觉是如何处理协调者挂了的情况,我觉得也许可以让参与者回调一个协调者的方法,用于验证协调者是否挂了,如果挂了,就立刻回滚,避免事务占用的时间太长。
老师,以上是我对第5章作业的回答,您看是否可以,谢谢
写回答
1回答
-
大能老师
2023-04-10
结合题目的话,从这样的角度思考会更贴切一点:
支付宝充当协调者角色
A银行,就是参与者A
B银行,就是参与者B
当然实际银行间转账会复杂很多,涉及信息流、资金流、清分结算等环节。这里我们只考虑往两个账户做增加操作
00
相似问题