在超市刷卡,POS機(jī)卡死了。收銀員說,請?jiān)僭囈淮巍4蠖鄶?shù)人會照做,祈禱別扣兩次錢。但在金融科技系統(tǒng)里,這是個有名字的問題——冪等性。它保證同一筆轉(zhuǎn)賬請求不管來一次還是五次,結(jié)果都一樣。重復(fù)支付的成本遠(yuǎn)比支付失敗高。
做后端的人學(xué)這些概念,往往以為只是面試八股文。可它們每天在解決真金白銀的問題。金融科技逼你跳出接口和數(shù)據(jù)庫的思維,去看錢、可靠性、信任這些更底層的東西。
先說接口。以前看接口,就是個吐JSON的端點(diǎn)。金融科技教我的第一課:接口是合同。一旦其他系統(tǒng)依賴它,你改個字段名、返回不一致的響應(yīng),集成直接掛掉,影響的不是代碼,是真人。這事沒有回滾按鈕。
數(shù)據(jù)庫也一樣。表里幾百行的時候,什么都快。當(dāng)交易量到百萬級,索引、事務(wù)、查詢優(yōu)化突然變成毫秒和秒的差別。多數(shù)性能瓶頸,加機(jī)器沒用,你得看得懂自己寫的查詢到底在干什么。
并發(fā)問題更有意思。兩臺取款請求幾乎同時打到服務(wù)器,沒有鎖或事務(wù)管理,兩邊讀到的余額一樣,都批準(zhǔn)——這就是競態(tài)條件。課本上看著像理論,等它開始吞錢,你才意識到這東西的威力。
緩存呢,人人都愛Redis,快。但金融科技說,快不是一切。過期數(shù)據(jù)能惹大禍。有時候,正確性比性能要緊得多。難的不是加緩存,而是知道什么時候該讓緩存數(shù)據(jù)失效。
認(rèn)證和授權(quán)也是兩碼事。知道用戶是誰,和知道他能干什么,完全不同的難題。牽涉到錢,權(quán)限就不是擺設(shè)。登進(jìn)去了不代表什么操作都能做。
隊(duì)列顛覆了我對請求的理解。早期恨不得所有事都在一個請求里同步做完:發(fā)郵件、生成回執(zhí)、通知用戶、更新分析面板。金融科技讓你愛上異步處理。有些事必須發(fā)生,不意味著必須現(xiàn)在發(fā)生。最后說到可靠性——服務(wù)商偶爾也會宕,你的系統(tǒng)得撐住。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.