java基礎(chǔ)簡單實現(xiàn)atm機 ATM機和微信同時取錢會怎么樣?
ATM機和微信同時取錢會怎么樣?假設(shè)同時取款的銀行賬戶是同一個賬戶,并且只能取款一次。那么這就屬于系統(tǒng)設(shè)計和多渠道同時退市的場景問題。恰巧作者是一位金融It從業(yè)者,也恰巧做過銀行核心系統(tǒng)的設(shè)計與開發(fā)。
ATM機和微信同時取錢會怎么樣?
假設(shè)同時取款的銀行賬戶是同一個賬戶,并且只能取款一次。那么這就屬于系統(tǒng)設(shè)計和多渠道同時退市的場景問題。恰巧作者是一位金融It從業(yè)者,也恰巧做過銀行核心系統(tǒng)的設(shè)計與開發(fā)。所以我會從系統(tǒng)和場景設(shè)計的角度來談這個。
首先,單通道取款只能從微信或ATM取款。微信快捷支付和ATM屬于外圍渠道。當(dāng)外圍渠道向核心系統(tǒng)發(fā)送取款請求時,核心系統(tǒng)采取先借后貸的原則,先從您的賬戶中扣錢。請注意,扣錢操作將使用事務(wù)一致性等技術(shù)手段來確保獨立執(zhí)行。當(dāng)您再次要求取款時,系統(tǒng)會提示您賬戶余額不足。
另外,在客戶看來,同時發(fā)生的問題是同時發(fā)生的,但內(nèi)部系統(tǒng)卻不這么認(rèn)為。無論您同時單擊多少個按鈕,對于到達(dá)核心或操作數(shù)據(jù)庫的請求都會有一個先到先得的順序。
因此,微信和ATM會受到網(wǎng)絡(luò)信號、延遲和不同處理速度的影響,請求的哪一方先執(zhí)行,哪一方可以成功取款,另一方只有賬戶余額不足