小工具知识网

当前位置: 首页 > 行业知识 > 三天学会阿里分布式事务框架Seata-分布式事务问题模拟

行业知识

三天学会阿里分布式事务框架Seata-分布式事务问题模拟

2026-10-20 17:41:09 来源:互联网转载

锋哥原创���分布式事务框架Seata视频教程:

实战阿里分布式事务框架Seata视频教程(无废话,通俗易懂版)_哔哩哔哩_bilibili实战阿里分布式事务框架Seata视频教程(无废话,通俗易懂版)共计10条视频,包括:1 阿里分布式事务框架Seata简介、2 分布式事务简介、3 SpringCloud Alibaba分布式基础案例搭建等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV1Uf4y1579F/当多个服务调用过程中,其中一个或者多个服务执行失败,出现异常情况的时候,导致数据不一致性,这样就出现了分布式事务问题;

我们来模拟下这个问题,我们运行过程中,让账户扣钱操作执行失败;

我们修改seata-account里面AccountController类的decrease方法:

/** * 给指定用户账户扣钱 * @param amount * @param userId * @return */@PostMapping("/decrease")public boolean decrease(@RequestParam("amount")Integer amount, @RequestParam("userId")Integer userId)throws Exception{    System.out.println("amount:"+amount+",userId:"+userId);    if(userId==null || userId==1){        throw new Exception("模拟异常");    }    Map map=new HashMap();    map.put("amount",amount);    map.put("userId",userId);    accountService.decrease(map);    return true;}

当userId=1的时候,模拟抛出异常,下面的就不执行;

数据库数据先恢复原来的,postman再测试:

出现 500异常;

这时候我们去查看数据库发现,t_order表有数据,订单已经生成了;

再看 t_account 表,数据没变化 这样的话,就导致了业务上的数据不一致性问题,也就是分布式事务问题,我们需要解决这个问题;

上一篇:Win10冰封之谜,揭秘冰封现象的背后真相

下一篇:虫虫助手服务器怎么了?