北京做网站的,wordpress字体功能,怎么搭建一个完整的网站,汕头保安公司一 seata的模式
1.1 seata的几种模式比较
Seata基于上述架构提供了四种不同的分布式事务解决方案#xff1a; XA模式#xff1a;强一致性分阶段事务模式#xff0c;牺牲了一定的可用性#xff0c;无业务侵入 TCC模式#xff1a;最终一致的分阶段事务模式#xff0c;有…一 seata的模式
1.1 seata的几种模式比较
Seata基于上述架构提供了四种不同的分布式事务解决方案 XA模式强一致性分阶段事务模式牺牲了一定的可用性无业务侵入 TCC模式最终一致的分阶段事务模式有业务侵入 AT模式最终一致的分阶段事务模式无业务侵入也是Seata的默认模式 SAGA模式长事务模式有业务侵入
无论哪种方案都离不开TC也就是事务的协调者。
1.2 seata的XA模式原理
XA依赖关系型数据库实现事务实现基于二阶段提交。
RM一阶段的工作
① 注册分支事务到TC
② 执行分支业务sql但不提交
③ 报告执行状态到TC
TC二阶段的工作 TC检测各分支事务执行状态 a.如果都成功通知所有RM提交事务 b.如果有失败通知所有RM回滚事务
RM二阶段的工作 接收TC指令提交或回滚事务
截图如下
1.3 优缺点
XA模式的优点是什么 事务的强一致性满足ACID原则。 常用数据库都支持实现简单并且没有代码侵入
XA模式的缺点是什么 因为一阶段需要锁定数据库资源等待二阶段结束才释放性能较差 依赖关系型数据库实现事务
二 操作案例
2.1 XA模式配置
1.order服务 2.account服务 3.storage服务 2.2 发起全局事务的入口方法添加GlobalTransactional注解
本例中是OrderServiceImpl中的create方法。 2.3 服务启动
1启动nacos 2.启动seata 2.4 验证
2.4.1 初始态表中数据
1.account表 2.order表 3.storage表 2.4.2 正常下订单操作
1.请求
http://localhost:8082/order?userIduser202103032042012commodityCode100202003032041count3money200 2.查看此时表中数据变化 均实现了正确的扣减操作 2.4.3 正常下订单大于库存数操作
1.请求 库存为5个而现在要下订单30个请求后出现问题
http://localhost:8082/order?userIduser202103032042012commodityCode100202003032041count30money200 2. 查看程序后台均提示回滚操作
2.1 account模块 2.2 order模块 2.3 storage模块 3.查看数据表数据表中的信息也均进行回滚没有出现脏数据或者不一致的情况。