行业知识
三天学会阿里分布式事务框架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 表,数据没变化 这样的话,就导致了业务上的数据不一致性问题,也就是分布式事务问题,我们需要解决这个问题;下一篇:虫虫助手服务器怎么了?