深圳网站设计公司怎么样,申请企业邮箱需要什么,用vs2008做网站教程,工作单位一般填写什么Seata可以解决分布式事务问题#xff0c;利用GlobalTransacational(name fsp-create-order,rollbackFor Exception.class)注解就可以实现全局的事务管理#xff0c;但是我们需要明白原理的实现。 我们举例创建订单——调减库存——调扣余额——改订… Seata可以解决分布式事务问题利用GlobalTransacational(name fsp-create-order,rollbackFor Exception.class)注解就可以实现全局的事务管理但是我们需要明白原理的实现。 我们举例创建订单——调减库存——调扣余额——改订单状态。 TCTMRM三大组件通俗说明 1.分布式事务的执行流程 TM开启分布式事务TM向TC注册全局事务记录(事务ID)。 事务的参与方准备事务资源RM向TC汇报资源的准备情况。 执行业务TM分布式事务第一阶段结束TM通知TC此时应该向RM获取事务状态信息了。 TC汇总RM上报的事务信息决定分布式事务是提交/回滚。 TC通知所有的RM提交/回滚事务。
2.AT事务模式到底是如何操作的
AT模式是Seata为用户提供的一种事务模式有一阶段加载二阶段提交/二阶段回滚。
在一阶段中Seata会拦截SQL语句在业务SQL执行前解析出要更新的业务数据保存before image执行完业务SQL后保存after image记录回滚日志undo log并且加上行锁。 在二阶段中如果各个事务顺利上报提交Seata只需将前后快照的记录、undo log和行锁删除即完成数据的清理即可。 但是如果提交失败Seata就需要回滚一阶段已经执行完的SQL还原业务数据在还原前还需要校对脏写after image中记录的数据必须和当前的业务数据一样如果不一致就说明有脏写要转人工处理。如果数据一致没有脏写需要利用undo log和before image将数据还原并删除前后快照记录、undo log和行锁。