用户余额下单,分库后如何保证一致性

发布于 2022-09-11 17:31:53 字数 64 浏览 25 评论 0

用户余额一个库,订单表一个库,资金明细一个库
用户采用余额下单,怎么在大并发情况下保证不会被多下单且数据一致

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

故事↓在人 2022-09-18 17:31:53

操作用户余额用原子操作
多下单你是指限购吗?


那就先创建订单(至少保证在任何情况下断电不会丢订单),然后在用类似下面的语句减余额

update balance=balance-90 where id=1 and balabce>=90

然后根据语句的执行结果去修改订单支付状态并添加资金明细
如果业务要求用户能显示出的订单必须都是成功支付的,那就把没支付成功的不显示就行了
最怀情况扣了钱还没来得及修改订单状态添加资金明细服务器断电了,这时靠余额库的数据库操作记录去恢复数据修改订单支付状态和资金明细(可能会需要一些人工处理)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文