在金融系统中,我们会跟钱打交道,而保证在高并发下场景下,对账户余额操作的一致性,是非常重要的,如果代码写的时候没考虑并发一致性,就会导致资损,本人在金融行业干了 8 年多,对这块稍微有点经验,所以这篇聊一下,如何在并发场景下,保证账户余额的一致性
1. 扣款流程是什么样的?
图片
public void payout(long uid,var payAmount){
# 查询账户总额
var amount= "SELECT amount FROM account WHERE uid=$uid";
# 计算账户余额
var balanceAmount = amount-payAmount;
if(balanceAmount