seata脏写原因模型图
2024-06-11 19:02:20 0 举报
seata脏写原因模型图
作者其他创作
大纲/内容
T2
T4
T1
业务操作一
本地事务
订单服务-下订单
库存服务-扣库存
DB
开始
3 异常
2
1
脏数据产生原因:【业务操作一】执行到T3时,【业务操作二】执行并且提交事务后,业务操作一开始执行T4阶段的步骤3,但因为步骤3异常,业务操作一执行全局回滚操作。此时因为DB中账户余额已经被业务操作二修改,导致全局回滚时判断数据被其他事务修改而无法回滚。此时数据库出现脏数据,只能手动修复数据。解决办法:账户服务-充值的方法加上全局事务注解,使该方法在执行时,判断要修改的数据是否在全局事务中,如果在全局事务中,则返回操作失败。
RPC
账户服务-充值
T3
结束
账户服务-扣余额
业务操作二

收藏

收藏
0 条评论
下一页