摘要:建立后臺(tái)觸發(fā)熔斷操作入口,人工錄入熔斷配置或資損防控檢測(cè)出異常新增并生效熔斷配置,應(yīng)急情況生效熔斷,日常支付鏈路不會(huì)過熔斷判斷。確認(rèn)無誤或故障處理完成后,觸發(fā)解熔斷操作,業(yè)務(wù)繼續(xù)處理或駁回。
1. 資損盲區(qū)
隨著有贊支付體量的增大,資產(chǎn)部門承擔(dān)的資金管理,風(fēng)險(xiǎn)把控的責(zé)任也越大。我們一方面要小步快跑,快速支撐業(yè)務(wù),又要穩(wěn)住底盤,守好底線。支付業(yè)務(wù)底線就是守護(hù)用戶的每一分錢,不能有資金損失。在我們搭建這套體系前,有贊支付資金類的線上監(jiān)控是個(gè)盲區(qū),缺乏自我發(fā)現(xiàn)的能力。業(yè)務(wù)成功了,但內(nèi)部對(duì)用戶的資金操作可能是錯(cuò)誤的,導(dǎo)致資損。而且故障發(fā)生到發(fā)現(xiàn)的時(shí)間很長,且大部分是用戶上報(bào),導(dǎo)致故障的影響面擴(kuò)大,用戶的信任度降低。
預(yù)防資損有很多種手段,除了事前線下通過各種測(cè)試手段保障資金安全外,線上也是非常重要的一環(huán)。除了發(fā)現(xiàn)問題,相應(yīng)的,出現(xiàn)故障時(shí),資損止血的能力也需要配套跟上。
舉一個(gè)最基本的支付業(yè)務(wù)場(chǎng)景,在有贊內(nèi)部會(huì)經(jīng)歷以下幾個(gè)系統(tǒng)之間的交互:
通過上圖可以看出每個(gè)系統(tǒng)的處理結(jié)果,會(huì)依據(jù)系統(tǒng)建立的模型存儲(chǔ)在數(shù)據(jù)庫中,部分關(guān)鍵信息會(huì)傳輸給下層系統(tǒng)。系統(tǒng)之間處理的重要信息如金額、賬戶不一致就會(huì)導(dǎo)致資損。目前我們也內(nèi)部對(duì)賬會(huì)發(fā)現(xiàn)這些問題,但是內(nèi)部對(duì)賬都是每天跑批執(zhí)行一次。如果依靠內(nèi)部對(duì)賬來發(fā)現(xiàn)這個(gè)問題,資損早就發(fā)生了。需要調(diào)用很大的人力物力去追款,大部分情況下還追不回來。我們分析了有贊近一年來的資損場(chǎng)景,結(jié)合歷史的經(jīng)驗(yàn),總結(jié)出資損類故障發(fā)生有幾下幾大類:
1)有正確的輸入,錯(cuò)誤的輸出:比如系統(tǒng)與系統(tǒng)之間的金額存儲(chǔ)單位不一致,或者自己處理金額正確,傳輸給下游的金額錯(cuò)誤,導(dǎo)致后面交易金額錯(cuò)誤;
2)上下游系統(tǒng)的數(shù)據(jù)不一致:該處理的沒處理,該到達(dá)終態(tài)的單據(jù)沒有到達(dá)終態(tài);
3)冪等控制失效,多扣款或多入賬;
4)系統(tǒng)內(nèi)部邏輯錯(cuò)誤,無對(duì)外輸出;
5)人工修復(fù)異常場(chǎng)景,產(chǎn)生資損。
基于解決以上問題的目的,我們?cè)O(shè)計(jì)了實(shí)時(shí)防控資損體系。總體設(shè)計(jì)思路圍繞以下幾點(diǎn):
1)發(fā)現(xiàn)問題的實(shí)時(shí)性,減少故障的影響面;
2)信息流一致性兩兩比對(duì)、資金流平衡型檢查;
3)全方位監(jiān)控:業(yè)務(wù)觸發(fā)、人工變更資金檢測(cè)、歷史數(shù)據(jù)檢測(cè);
4)檢測(cè)的準(zhǔn)確性,無誤報(bào);
5)和支付鏈路解藕,不影響主鏈路。
平臺(tái)能力是基礎(chǔ),檢測(cè)規(guī)則是其靈魂?;趯?duì)業(yè)務(wù)的豐富經(jīng)驗(yàn),我們可以沉淀一些業(yè)務(wù)資金規(guī)則,從旁路來約束和檢測(cè)系統(tǒng)邏輯的正確性。比如支付金額-退款金額應(yīng)該==結(jié)算金額,退款金額不能大于支付金額,憑證支付、現(xiàn)金支付無資金流類型不用調(diào)用賬務(wù),支付和賬務(wù)之間會(huì)經(jīng)過結(jié)算的處理,賬務(wù)累計(jì)出入金額和支付的金額應(yīng)該要相等。
3. 系統(tǒng)設(shè)計(jì): 3.1 總體設(shè)計(jì)的架構(gòu)圖如下:系統(tǒng)定位于事前線下測(cè)試環(huán)境兜底,事中一致性檢測(cè),事后資金兜底,不對(duì)業(yè)務(wù)造成入侵,完全旁路運(yùn)行。觸發(fā)點(diǎn)有 2 個(gè),業(yè)務(wù)事件消息和數(shù)據(jù)庫變更 binlog 信息。
分三類信息處理:
1) 基于各個(gè)業(yè)務(wù)事件比如支付完成事件、退款完成事件、確認(rèn)收貨時(shí)結(jié)算完成事件,賬務(wù)收支明細(xì)變更事件等,觸發(fā)運(yùn)行系統(tǒng)內(nèi)配置的依賴此事件的規(guī)則;
2) 通過監(jiān)聽 binlog 變更,可以檢測(cè)到人為操作類變更, 按定義好的邏輯生成對(duì)應(yīng)的檢查點(diǎn),每個(gè)檢查點(diǎn)有包含多個(gè)鏈路檢測(cè)。觸發(fā)對(duì)應(yīng)的規(guī)則運(yùn)行檢測(cè)全鏈路數(shù)據(jù)的一致性、資金的平衡性;
3) 人工處理歷史數(shù)據(jù)前,對(duì)歷史數(shù)據(jù)的質(zhì)量進(jìn)行前置檢測(cè)。保證不產(chǎn)生二次資損。
通過系統(tǒng)間兩兩核對(duì)數(shù)據(jù)一致性,或者抽象出系統(tǒng)內(nèi)的業(yè)務(wù)規(guī)則、資金規(guī)則旁路自檢來發(fā)現(xiàn)故障。并且實(shí)時(shí)獲取數(shù)據(jù),實(shí)時(shí)運(yùn)行,對(duì)于業(yè)務(wù)處理上有滯后和緩沖的場(chǎng)景,我們提供了異步運(yùn)行的機(jī)制,以及三次重試的機(jī)會(huì)。全面提供系統(tǒng)整體的容錯(cuò)性,無因系統(tǒng)設(shè)計(jì)問題導(dǎo)致的誤報(bào)。
經(jīng)過系統(tǒng)的沉淀之后,我們將過程中的數(shù)據(jù)存儲(chǔ)到了 hbase,把整個(gè)支付過程落地成了可視化試圖,可清晰的查看每個(gè)環(huán)節(jié)的數(shù)據(jù)形態(tài),具體數(shù)據(jù)就不展示了。
比如一筆訂單可以看到,當(dāng)前已經(jīng)是退款完成狀態(tài),對(duì)應(yīng)的支付成功時(shí)支付、結(jié)算、計(jì)費(fèi)、賬務(wù)數(shù)據(jù)形態(tài):
退款完成環(huán)節(jié)支付、結(jié)算、計(jì)費(fèi)、賬務(wù)數(shù)據(jù)形態(tài):
熔斷的處理流程圖如下:
基于我們之前建立的異常發(fā)現(xiàn)能力,同時(shí)我們需要具備資金止損能力。建立后臺(tái)觸發(fā)熔斷操作入口,人工錄入熔斷配置或資損防控檢測(cè)出異常新增并生效熔斷配置,應(yīng)急情況生效熔斷,日常支付鏈路不會(huì)過熔斷判斷。
熔斷支持按業(yè)務(wù)碼緯度、指定的單號(hào)、商戶號(hào)熔斷;
目前我們?cè)跇I(yè)務(wù)方接入的熔斷埋點(diǎn)有 3 個(gè)點(diǎn):退款、結(jié)算、出金。為什么考慮這三個(gè)地方埋點(diǎn)呢?
1) 我們整個(gè)系統(tǒng)的定位都是不侵入主鏈路,對(duì)用戶無感知的,所以支付環(huán)節(jié)不考慮埋點(diǎn)。且錢不能流出有贊的體系外,一旦流出則無法追回。
2) 在支付鏈路產(chǎn)生的故障,考慮在退款、結(jié)算環(huán)節(jié)來做攔截,且支付完成后,錢停留在有贊的中間戶,此時(shí)訂正支付鏈路數(shù)據(jù),對(duì)商戶來說無感知。
3) 一旦在結(jié)算環(huán)節(jié)出現(xiàn)問題,則考慮最后一道兜底,出金報(bào)送銀聯(lián)前進(jìn)行攔截。
確認(rèn)無誤或故障處理完成后,觸發(fā)解熔斷操作,業(yè)務(wù)繼續(xù)處理或駁回。
建立了這一整套體系后,半年時(shí)間內(nèi),我們已經(jīng)在線下環(huán)境聯(lián)調(diào)時(shí)就成功兜底資金處理 bug,線上也避免了多起問題。并定期的進(jìn)行故障演練來檢測(cè)平臺(tái)能力。
本文主要介紹大體的設(shè)計(jì)和實(shí)現(xiàn)思路,后續(xù)會(huì)有詳細(xì)的技術(shù)細(xì)節(jié)介紹,敬請(qǐng)期待。資損防控路漫漫,共勉。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/11436.html
摘要:信息泄漏嚴(yán)重,詐騙金額一路上升年至年上半年,根據(jù)錢盾監(jiān)控的案件數(shù)據(jù)表明,單次詐騙金額逐月上漲,從元上漲到元,上漲。詳細(xì)版錢盾安全報(bào)告版,請(qǐng)點(diǎn)擊這里下載下載地址 一、摘要 近年來電信詐騙案件頻發(fā),從2011年至2015年,全國電信詐騙案件數(shù)量從10萬件飆升至約60萬件。而在今年,電信詐騙的數(shù)量依然在上升,政府部門在各種公開場(chǎng)合強(qiáng)調(diào)必須依法嚴(yán)厲打擊,減少其對(duì)人民群眾財(cái)產(chǎn)安全和合法權(quán)益的損害...
摘要:然而業(yè)務(wù)安全場(chǎng)景,識(shí)別用戶身份評(píng)估用戶信譽(yù)是業(yè)務(wù)風(fēng)控的重要依據(jù)。數(shù)據(jù)風(fēng)控服務(wù)的價(jià)值回歸到文章開始的問題,業(yè)務(wù)安全防控如何成為業(yè)務(wù)促進(jìn)者,數(shù)據(jù)風(fēng)控服務(wù)能否達(dá)成這個(gè)目標(biāo)答案是肯定的。 你們安全不要阻礙業(yè)務(wù)發(fā)展、這個(gè)安全策略降低用戶體驗(yàn),影響轉(zhuǎn)化率——這是甲方企業(yè)安全部門經(jīng)常聽到合作團(tuán)隊(duì)抱怨。但安全從業(yè)者加入公司的初衷絕對(duì)不是阻礙業(yè)務(wù)發(fā)展,那么安全解決方案能否成為業(yè)務(wù)促進(jìn)者,而非業(yè)務(wù)阻礙者呢...
摘要:支付寶瘋起來連自己都打的項(xiàng)目就是紅藍(lán)軍技術(shù)攻防演練,他們不僅每周進(jìn)行全棧級(jí)別的演練,每年還會(huì)舉行規(guī)模極大的期中考試和期末考試。在支付寶,藍(lán)軍從屬于螞蟻金服技術(shù)風(fēng)險(xiǎn)部,而紅軍則包括及各業(yè)務(wù)部門的技術(shù)團(tuán)隊(duì)。 摘要:?紅軍 VS 藍(lán)軍,誰是更強(qiáng)者? ?小螞蟻說: 自古紅藍(lán)出CP,在螞蟻金服就有這樣兩支相愛相殺的隊(duì)伍——紅軍和藍(lán)軍。藍(lán)軍是進(jìn)攻方,主要職責(zé)是挖掘系統(tǒng)的弱點(diǎn)并發(fā)起真實(shí)的攻擊,俗稱...
閱讀 961·2021-11-24 09:39
閱讀 3383·2021-10-27 14:20
閱讀 2322·2019-08-30 14:08
閱讀 3361·2019-08-29 16:34
閱讀 2176·2019-08-26 12:14
閱讀 2104·2019-08-26 11:54
閱讀 2771·2019-08-26 11:44
閱讀 2474·2019-08-26 11:38