电商项目——分布式事务——第十三章——中篇

本文探讨了在电商项目中遇到的分布式事务问题,包括本地事务在分布式环境下的挑战,如服务间的异常处理和假失败情况。介绍了CAP理论、BASE原则,并复习了事务的隔离级别和传播行为。文章还提到了Seata作为分布式事务解决方案的使用,并讨论了在高并发场景下采用消息队列以实现最终一致性库存解锁逻辑。
摘要由CSDN通过智能技术生成

电商项目——全文检索-ElasticSearch——第一章——中篇
电商项目——商城业务-商品上架——第二章——中篇
电商项目——商城业务-首页——第三章——中篇
电商项目——性能压测——第四章——中篇
电商项目——缓存——第五章——中篇
电商项目——商城业务-检索服务——第六章——中篇
电商项目——商城业务-异步——第七章——中篇
电商项目——商品详情——第八章——中篇
电商项目——认证服务——第九章——中篇
电商项目——购物车——第十章——中篇
电商项目——消息队列——第十一章——中篇
电商项目——订单服务——第十二章——中篇
电商项目——分布式事务——第十三章——中篇

1:本地事务在分布式下的问题

在这里插入图片描述

 @Transactional
    @Override
    public SubmitOrderResponseVo submitOrder(OrderSubmitVo vo) {
   

        confirmVoThreadLocal.set(vo);
        SubmitOrderResponseVo submitOrderResponseVo=new SubmitOrderResponseVo();
        //使用拦截器里面的threalocal
        MemberRespVo memberRespVo = OrderInterceptor.loginUser.get();
        //1:验证令牌【令牌的对比和删除,获取令牌必须保证原子性】
        //如果redis调用get方法获取KEYS[1]值,然后它就会返回令牌删除,然后返回0
        //0令牌对比不一样就删除失败 1令牌对比删除成功
        String script="if redis.call('get',KEYS[1]) == ARGV[1] then return redis.call('del',KEYS[1]) else return 0 end";
        String orderToken = vo.getOrderToken();
        //原子令牌验证和删除
        Long result = redisTemplate.execute(new DefaultRedisScript<Long>(script, Long
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值