和这种直接扣减的方式相比,有什么好处呢?
UPDATE stock SET amount = amount - $diff WHERE id=$id AND amount>$diff;
有些文章说是乐观锁方式可以在重试时保证幂等性,不过什么时候会重试呢
1. 超时?如果重试又失败,那怎么判断是之前已经成功还是后来竞争失败呢?怎么返回结果给上层呢
2. 如果是获取版本号一起被重试,那也没什么幂等性了
总觉得没说服力,五十步笑百步的感觉,想要实现幂等性,最终还是需要其他辅助手段。
这种方式是有什么其他原因吗,比如性能,正确性?
说是幂等性优点的(架构师之路):
https://mp.weixin.qq.com/s/xXju0y64KKUiD06QE0LoeA还有《企业 IT 架构转型之道》这本书里,是将乐观锁扣减方式和 select for update 相比较,没提什么 where 限制扣减,幂等性之类
大家是用什么方式,这种乐观锁覆盖实现扣减到底有什么好处呢?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/667178
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.