乐观锁的幂等性方案

允我心安 提交于 2019-12-05 13:37:35

那么为了使用乐观锁,我们首先修改t_goods表,增加一个version字段,数据默认version值为1

 

 

乐观锁方案

借鉴数据库的乐观锁机制,如:
 update t_goods set count = count -1 , version = version + 1 where good_id=#{id} and version = 1

 

根据version版本,也就是在操作库存前先获取当前商品的version版本号,然后操作的时候带上此version号。我们梳理下,我们第一次操作库存时,得到version为1,调用库存服务version变成了2;但返回给订单服务出现了问题,订单服务又一次发起调用库存服务,当订单服务传如的version还是1,再执行上面的sql语句时,就不会执行;因为version已经变为2了,where条件就不成立。这样就保证了不管调用几次,只会真正的处理一次。
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!