java基础简单实现atm机 ATM机和微信同时取钱会怎么样?

ATM机和微信同时取钱会怎么样?假设同时取款的银行账户是同一个账户,并且只能取款一次。那么这就属于系统设计和多渠道同时退市的场景问题。恰巧作者是一位金融It从业者,也恰巧做过银行核心系统的设计与开发。

ATM机和微信同时取钱会怎么样?

假设同时取款的银行账户是同一个账户,并且只能取款一次。那么这就属于系统设计和多渠道同时退市的场景问题。恰巧作者是一位金融It从业者,也恰巧做过银行核心系统的设计与开发。所以我会从系统和场景设计的角度来谈这个。

首先,单通道取款只能从微信或ATM取款。微信快捷支付和ATM属于外围渠道。当外围渠道向核心系统发送取款请求时,核心系统采取先借后贷的原则,先从您的账户中扣钱。请注意,扣钱操作将使用事务一致性等技术手段来确保独立执行。当您再次要求取款时,系统会提示您账户余额不足。

另外,在客户看来,同时发生的问题是同时发生的,但内部系统却不这么认为。无论您同时单击多少个按钮,对于到达核心或操作数据库的请求都会有一个先到先得的顺序。

因此,微信和ATM会受到网络信号、延迟和不同处理速度的影响,请求的哪一方先执行,哪一方可以成功取款,另一方只有账户余额不足