miaosha
miaosha copied to clipboard
分布式事务一致性问题
下面代码是有问题的,rpc扣减库存如果事务回滚,商品服务的库存数据是要被加回来的,本地事务满足不了要用分布式事务。
@Transactional public OrderInfo miaosha(MiaoshaUser user, GoodsVoOrder goods) { //减库存 下订单 写入秒杀订单 // update miaosha_goods set stock_count = stock_count - 1 where goods_id = #{goodsId} and stock_count > 0 boolean success = goodsServiceRpc.reduceStock(goods); if (success) { return orderService.createOrder(user, goods); } else { //如果库存不存在则内存标记为true setGoodsOver(goods.getId()); return null; } }