詳解“日切”原理

0 評(píng)論 813 瀏覽 0 收藏 35 分鐘

探索支付領(lǐng)域的奧秘,深入了解日切的復(fù)雜世界。在這篇文章將帶我們穿越歷史的長(zhǎng)河,從早期的錢莊貨幣到現(xiàn)代銀行體系,全面解析日切的演變、挑戰(zhàn)和實(shí)現(xiàn)模式。

我想很多人都不陌生,但日切究竟是如何實(shí)現(xiàn)的,日切前后及過程中都發(fā)生了什么,需要做哪些事情;不同的年代、不同的機(jī)構(gòu)情形下,日切的實(shí)現(xiàn)模式有何異同,本文將徹底聊清楚

所謂日切就是切換到下一個(gè)記賬日期,這里要先搞清楚一個(gè)事情,日切就意味上一個(gè)交易日結(jié)束,下一個(gè)交易日開始,也就是日切伴隨著日終,二者形影不離,那么聊日切就必須聊日終處理,我們把它當(dāng)成一件事來看

為了深刻理解日切模式,我們先看下日切的發(fā)展史

一、日切簡(jiǎn)史

大家可能覺得,我現(xiàn)在就在做賬務(wù),對(duì)日切感知并不明顯,所以,日切有什么好講的,如果你這么想,那只因?yàn)橐粋€(gè)原因

時(shí)代變了,方式也變了;要想深度理解一個(gè)事物,就要站在歷史發(fā)展的視角看它,你感知不到,可能是因?yàn)?,它以更高?jí)和隱蔽的形式存在

1)從重到輕

支付發(fā)展程度越高,效率越高,成本越低,其中就包括日切的處理

早期的錢莊貨幣是金屬的,做賬是手工的,加上沒有現(xiàn)代會(huì)計(jì)方法作為依據(jù),那么賬務(wù)登記和管理效率相對(duì)較低,造成兩個(gè)交易日之間的日終處理工作相對(duì)繁瑣,可以理解為非常重的“日切/日終處理”時(shí)期

同樣銀行也經(jīng)歷了多個(gè)時(shí)期,例如最早期的手工賬時(shí)期,用算盤算賬,紙質(zhì)賬簿做賬務(wù)登記,那么日切過程勢(shì)必要處理的事務(wù)相對(duì)較多,而且需要的人力成本較高,用時(shí)較長(zhǎng)

1979年,國(guó)務(wù)院批準(zhǔn)銀行業(yè)可以引進(jìn)外國(guó)計(jì)算機(jī)進(jìn)行試點(diǎn),1987年開始,工行、中行、建行開始引入IBM的大型機(jī)和業(yè)務(wù)應(yīng)用系統(tǒng),結(jié)束了手工記賬的時(shí)代,開啟了信息化進(jìn)程?,那么很多工作交給了計(jì)算機(jī)去做,這時(shí)候的日終處理效率相比手工賬時(shí)代就高多了,但是日切和日終的事務(wù)依然耦合在一起,需要停止聯(lián)機(jī)交易進(jìn)行日切和日終處理

這個(gè)階段,每年的12月31號(hào),一年最后一天的日切/年終也就是銀行年終決算最忙的一天,進(jìn)行全年損益結(jié)轉(zhuǎn)利潤(rùn),因?yàn)殂y行的賬目很多,現(xiàn)金賬、日記賬、柜員賬、網(wǎng)點(diǎn)的賬等等都需要實(shí)現(xiàn)平衡,一分錢都不能錯(cuò);這就導(dǎo)致每次年終決算就像打仗一樣,全行聯(lián)動(dòng),為確保數(shù)據(jù)無缺失、準(zhǔn)確,需要進(jìn)行大量的檢查;聽說每圓滿完成一次年終決算,是要慶祝甚至放鞭炮的

而現(xiàn)在的年終決算,相比之前要輕松容易多了!

現(xiàn)代銀行體系一般都可以提供7*24交易服務(wù),那么如何實(shí)現(xiàn)即可以實(shí)現(xiàn)“7*24小時(shí)不間斷聯(lián)機(jī)交易,又可以實(shí)現(xiàn)日切、日終處理的順利進(jìn)行,就是這個(gè)時(shí)期需要重點(diǎn)解決的問題,這個(gè)時(shí)期的日切可以認(rèn)為是極輕的日切時(shí)代,即然輕,那對(duì)它的感知就弱了

這里要掰扯清楚一點(diǎn),就是雖然現(xiàn)在大部分都實(shí)現(xiàn)了7*24小時(shí)聯(lián)機(jī)交易,但銀行依然需要進(jìn)行日終維護(hù),二者之間并不是沖突的關(guān)系,不是說,我7* 24小時(shí)了,就不休息了,不維護(hù)了;只不過是系統(tǒng)維護(hù)和7* 24小時(shí)可以實(shí)現(xiàn)并行

2)從繁到簡(jiǎn)

上面講到了7*24小時(shí)不間斷交易處理是當(dāng)下的流行;那么怎么兼顧實(shí)時(shí)交易不間斷,而日終處理又可以順利進(jìn)行呢,就成了這個(gè)階段最重要的課題

其實(shí)二者重點(diǎn)產(chǎn)生糾纏的是在日切點(diǎn)附近的“實(shí)時(shí)交易和日終處理”,二者存在依賴關(guān)系,例如日終處理需要上日終的靜態(tài)日末余額,而實(shí)時(shí)交易的余額是動(dòng)態(tài)實(shí)時(shí)更新不停息的

那么,切斷二者的糾纏而形成輕聯(lián)系,建立讓彼此單獨(dú)運(yùn)行的模式,就是突破口

而上一日的日末余額和上一日數(shù)據(jù)的完整性是日終處理依賴的關(guān)鍵,所以,實(shí)時(shí)交易要確保提供這兩個(gè)保證即可

那么在模式設(shè)計(jì)上就出現(xiàn)了雙余額模式或者雙表模式

可以這么理解,將實(shí)時(shí)交易和日終處理進(jìn)行隔離,實(shí)時(shí)交易做自己的7*24小時(shí),而日終處理在另一個(gè)區(qū)域單獨(dú)進(jìn)行,不阻礙也不干擾實(shí)時(shí)交易的進(jìn)行,實(shí)時(shí)交易只需要保證提供日終處理需要的內(nèi)容;也就是所謂的

“實(shí)時(shí)聯(lián)機(jī)交易+日終批量處理”雙模式

那么這也就是所謂的“日切&日終”強(qiáng)糾纏的繁瑣日切模式,到了二者實(shí)現(xiàn)隔離的簡(jiǎn)日切模式,也就意味著,如果交易不需要關(guān)注日終,那么日切將變得極其簡(jiǎn)單

當(dāng)然對(duì)于支付機(jī)構(gòu)、交易平臺(tái),這是很容易實(shí)現(xiàn),因?yàn)閷儆谌踬~戶模式,哪怕沒有日切和日終的概念,也可以實(shí)現(xiàn)數(shù)據(jù)的自然切割,按照自然日進(jìn)行處理即可;而對(duì)于銀行要實(shí)現(xiàn)這一點(diǎn)相對(duì)復(fù)雜,因?yàn)榇嬖诳蛻舸婵钣?jì)息、貸款計(jì)息的管理,對(duì)靜態(tài)余額的強(qiáng)依賴,所以即需要維持動(dòng)態(tài)余額的更新,又需要確保靜態(tài)余額的生成和不變

二、日切概述

日切簡(jiǎn)單的說就是記賬日期的切換,變更系統(tǒng)的記賬時(shí)間;也就是人為的將時(shí)間軸根據(jù)設(shè)定的“日切時(shí)間點(diǎn)”切割成一個(gè)一個(gè)的區(qū)間,從前一個(gè)區(qū)間到下一個(gè)區(qū)間的過程就是切換的過程;這里的切換時(shí)間點(diǎn)就是“日切點(diǎn)”

所以,通過日切點(diǎn)將連續(xù)的時(shí)間進(jìn)行了切割,同時(shí)也對(duì)數(shù)據(jù)進(jìn)行了切割,形成了一個(gè)個(gè)的數(shù)據(jù)集,例如23:00作為日切點(diǎn),那么{T:23:00,T+1:23:00}就構(gòu)成了一個(gè)數(shù)據(jù)集合區(qū)間

1)為什么要有“日切”

雖然自然時(shí)間是連續(xù)的,但是很多實(shí)務(wù)需要按周期進(jìn)行或者以周期為單位進(jìn)行管理

例如飯館到了晚上21:00要打烊,然后盤點(diǎn)當(dāng)天的賬目、打掃衛(wèi)生、為下一個(gè)營(yíng)業(yè)日準(zhǔn)備,這里的21:00其實(shí)就是日切點(diǎn),日切后進(jìn)行日終處理

同樣銀行也要上下班,下班后柜面業(yè)務(wù)收取的現(xiàn)金等線下業(yè)務(wù)需要進(jìn)行盤點(diǎn)、入庫(kù),而核心系統(tǒng)的線上業(yè)務(wù)等也要進(jìn)行一系列的日終處理,例如生成日末余額、生成總賬、賬目核算、計(jì)息等等,那么需要“日切點(diǎn)”作為兩個(gè)周期的分割點(diǎn)

特別在手工賬年代,日切及日終處理工作量尤其明顯,只不過隨著科技的發(fā)展、電子化的普及的數(shù)字化時(shí)代,這個(gè)過程全部交給電腦了,我們的感知變?nèi)趿?/p>

這里要清楚一點(diǎn),日切完成不一定意味著立刻進(jìn)入了下一個(gè)交易日,例如日切完成了,但是下一個(gè)周期的交易要等待次日9:00才開始,那時(shí)間上,日切點(diǎn)23:00到次日9:00這個(gè)區(qū)間算是“日終處理+休息時(shí)間+營(yíng)業(yè)準(zhǔn)備”時(shí)間,不營(yíng)業(yè),但有事做

雖然現(xiàn)在的交易大部分都是7*24小時(shí)不間斷運(yùn)轉(zhuǎn),但是日切后還是會(huì)涉及一些日終的處理,例如清算文件的生成、結(jié)算數(shù)據(jù)的生成與下發(fā)等,日終與與日間的實(shí)時(shí)交易處理明顯不同,存在明顯的周期性和集中性,需要以“日切點(diǎn)”作為日終實(shí)務(wù)處理的開始信號(hào)

這里也涉及到數(shù)據(jù)的切割問題,例如一個(gè)交易日的數(shù)據(jù)做為一個(gè)信息單元,我們的利息按日計(jì)算,眾多系統(tǒng)之間、各個(gè)機(jī)構(gòu)之間的數(shù)據(jù)都需要按照相同的切割規(guī)則完成,這樣才能實(shí)現(xiàn)按周期的核算,例如渠道的清算文件以日為區(qū)間進(jìn)行提供,那么這個(gè)區(qū)間的起始點(diǎn),就是兩個(gè)連續(xù)的“日切點(diǎn)”

所以,需要“日切”這樣一個(gè)動(dòng)作,執(zhí)行日期的切換、實(shí)現(xiàn)數(shù)據(jù)分割、作為日終處理的標(biāo)志,起到調(diào)度的作用

2)日切時(shí)間選擇

日切時(shí)間在時(shí)間點(diǎn)選擇上,往往選擇沒在夜間交易低估時(shí)段進(jìn)行,因?yàn)槿涨星昂笮枰M(jìn)行一系列的事務(wù)處理,避免影響正常業(yè)務(wù);例如有些銀行選擇23:00作為日切點(diǎn);那么23:00以后的交易將劃歸到下一個(gè)交易日

3)日切要干嘛

從技術(shù)操作上,日切只是將記賬日期進(jìn)行變更,但是日切前后及日切過程中需要執(zhí)行一系列的事務(wù),還要協(xié)調(diào)眾多系統(tǒng)之間的配合

例如全體系切換記賬時(shí)間,采用最新的記賬時(shí)間;進(jìn)行多系統(tǒng)間數(shù)據(jù)的核對(duì),保證每個(gè)系統(tǒng)都完成的數(shù)據(jù)的登記,進(jìn)行賬務(wù)的入賬、總賬的生成等

4)不同場(chǎng)景做的事不同

普通交易平臺(tái)、支付機(jī)構(gòu)、銀行業(yè)務(wù)、清算、央行等在日切點(diǎn)關(guān)注重點(diǎn)和實(shí)現(xiàn)上存在差異

銀行因?yàn)樯婕暗酱罅康馁~戶,所以銀行日切要重點(diǎn)關(guān)注賬務(wù)處理的完整性和準(zhǔn)確性以及日終處理;另外就是按日計(jì)息等工作,又需要重點(diǎn)關(guān)注日終余額或者日均余額進(jìn)行計(jì)息,那么每日的日終靜態(tài)余額顯得很重要;同時(shí)銀行又因?yàn)樯婕暗焦衩妗TM等線下業(yè)務(wù),監(jiān)管申報(bào)和合規(guī)性檢查等等,所以,銀行的日切處理相對(duì)復(fù)雜,要做的工作較多

清算機(jī)構(gòu)因?yàn)橹饕亲鲂畔⑥D(zhuǎn)接,所以清算機(jī)構(gòu)日切的重點(diǎn)在交易數(shù)據(jù)的清分、匯總與清算處理上,沒有那么重的賬戶處理業(yè)務(wù),甚至清算機(jī)構(gòu)會(huì)存在場(chǎng)切,每小時(shí)一個(gè)場(chǎng)次,場(chǎng)次之間也存在固定時(shí)間點(diǎn)的切換

央行的日切或者日終要確保清算場(chǎng)次內(nèi)所有機(jī)構(gòu)都可以完成清算,例如頭寸不足的要排隊(duì)撮合、沒錢的可以拆解或者貸款,那么央行各系統(tǒng)日切保證清算完成避免出現(xiàn)系統(tǒng)性金融風(fēng)險(xiǎn),當(dāng)然清算文件的生成和下發(fā)也是重點(diǎn)之一

而支付機(jī)構(gòu)或者交易平臺(tái)相比金融機(jī)構(gòu),在日切需求上就沒有那么明確的訴求了,核心目的就是確保完成對(duì)商戶的記賬和按周期準(zhǔn)確結(jié)算,這也就意味著數(shù)據(jù)切割是重點(diǎn)

除了不同機(jī)構(gòu)之間存在差異,同類機(jī)構(gòu)中不同的企業(yè)之間也會(huì)存在差異,一個(gè)純線上交易的平臺(tái)和一個(gè)涉及線下門店業(yè)務(wù)的企業(yè)在日終處理上會(huì)存在差異

所以,雖然日切在原理實(shí)現(xiàn)上有通用性,但是具體的具體的場(chǎng)景、企業(yè)內(nèi)部,需要根據(jù)實(shí)際的業(yè)務(wù)選擇進(jìn)行設(shè)計(jì)

三、日切的挑戰(zhàn)

大家這么想,如果日切執(zhí)行過程中大家都停止工作,那事情就好辦了,在這個(gè)期間沒有交易,把所有要做的日終處理都做完,再開啟下一個(gè)工作日的交易,那么日切其實(shí)就是一個(gè)日切的切換

但是,實(shí)際上的日切業(yè)務(wù)不止是時(shí)間的切換,存在一連串的挑戰(zhàn)

1)7*24小時(shí)不間斷交易的挑戰(zhàn)

實(shí)際情況是,業(yè)務(wù)和系統(tǒng)是7*24小時(shí)不間斷運(yùn)行的,采用什么樣的模式處理實(shí)時(shí)不間斷交易和日終批處理之間的協(xié)同,是一大挑戰(zhàn)

2)多系統(tǒng)作業(yè)的協(xié)同挑戰(zhàn)

一個(gè)交易體系所涉及系統(tǒng)數(shù)量眾多,其中包括交易系統(tǒng)、支付系統(tǒng)、清結(jié)算系統(tǒng)、賬務(wù)系統(tǒng)、會(huì)計(jì)系統(tǒng)、財(cái)務(wù)系統(tǒng)等等

而日切不只是賬務(wù)系統(tǒng)記賬日切的切換,還需要各個(gè)系統(tǒng)執(zhí)行相應(yīng)的日切任務(wù)

這里最大的挑戰(zhàn)就是調(diào)度問題,因?yàn)橄到y(tǒng)之間的日切和日終處理存在順序和依賴關(guān)系;誰先誰后,什么時(shí)候開始,什么時(shí)候結(jié)束;大家怎么知道上游已經(jīng)結(jié)束了輪到自己了

例如,交易系統(tǒng)沒有完成日期,沒有確保所有上日交易都推送至賬務(wù)核心,那賬務(wù)核心執(zhí)行日切就會(huì)出問題,例如記賬數(shù)據(jù)不全,日終余額不準(zhǔn)確,與上游核對(duì)存在差異等問題

3)數(shù)據(jù)切割的一致性

眾多系統(tǒng)的存在,就意味著同一份數(shù)據(jù)會(huì)登記在很多系統(tǒng)中,同樣就會(huì)存在多個(gè)時(shí)間屬性,例如交易時(shí)間、清算時(shí)間、記賬時(shí)間等等

那么在上下游核對(duì)時(shí),確保彼此數(shù)據(jù)切割一致,否則依然會(huì)存在數(shù)據(jù)集合不同的問題,與外部渠道間也存在這個(gè)問題,例如銀行日切點(diǎn)是23:00,而機(jī)構(gòu)日切實(shí)00:00,那么二者同一個(gè)交易日期的數(shù)據(jù)集不同

除了數(shù)據(jù)切割時(shí)間不一致造成的差異之外,不同系統(tǒng)之間,即使日切點(diǎn)一致,也可能會(huì)存在差異,這里要了解一個(gè)現(xiàn)象:記賬漂移

就是系統(tǒng)之間傳遞數(shù)據(jù)的時(shí)間差造成的時(shí)間整體向后推移,系統(tǒng)間在日切時(shí)間點(diǎn)附近造成了時(shí)間差現(xiàn)象

從圖中可以看出來,即使實(shí)時(shí)記賬,因?yàn)橄到y(tǒng)延遲等原因,會(huì)造成交易時(shí)間和記賬時(shí)間存在△t的時(shí)間差異,這個(gè)差異就是記賬漂移

如果遠(yuǎn)離日切點(diǎn)的日間交易,這種差異的影響并不明顯,因?yàn)楹苌俸秃藢?duì)數(shù)據(jù)間的具體時(shí)間的一致性;但是在日切點(diǎn)附近的交易就可能飄逸到下一個(gè)記賬日期,也就是T日的交易,記賬日期飄逸到了T+1,那么整個(gè)數(shù)據(jù)集合就形成了錯(cuò)配

當(dāng)以日為單位進(jìn)行數(shù)據(jù)核算時(shí),你會(huì)發(fā)現(xiàn),交易和賬務(wù)層的數(shù)據(jù)并不一致;即所謂的時(shí)間差差異

你要不要通過一個(gè)模式來解決這個(gè)問題,怎么解決

所以,如何確保全局?jǐn)?shù)據(jù)切割的一致,按那個(gè)時(shí)間切割,交易按交易時(shí)間切割,賬務(wù)按記賬時(shí)間切割,如果這樣,這里就會(huì)天然存在時(shí)間差;這里的切割一致性保證涉及到交易、賬務(wù)、會(huì)計(jì)、提供給客戶的交易文件等,他們之間的一致性

四、日切原理

在介紹原理之前,大家要搞清楚并區(qū)別幾個(gè)概念

日期的概念:交易日期、清算日期、記賬日期、會(huì)計(jì)日期、對(duì)賬日期、結(jié)算日期等,這里就詳細(xì)說明了

余額的種類:動(dòng)態(tài)實(shí)時(shí)賬戶余額、靜態(tài)的賬戶日終余額、賬戶凍結(jié)余額、可用余額等

所謂動(dòng)態(tài)即會(huì)隨著交易的產(chǎn)生而不斷變化,例如賬戶余額,這個(gè)是隨著收入、支出的產(chǎn)生而動(dòng)態(tài)變化的,這個(gè)余額用戶需要實(shí)時(shí)看到,而且準(zhǔn)確

所謂靜態(tài)數(shù)據(jù)即數(shù)據(jù)一旦產(chǎn)生便不再變化,例如日終余額,一旦完成日切,日終余額生成,那么這個(gè)余額就不能再變了;像計(jì)息、總賬核對(duì)等需要用到這個(gè)靜態(tài)余額

4.1日切處理架構(gòu)

下面看日切的全局實(shí)現(xiàn),這里要明確幾點(diǎn)

數(shù)據(jù)在系統(tǒng)之間的傳遞存在順序性,交易不會(huì)繞過賬務(wù)系統(tǒng)直接將數(shù)據(jù)提交給會(huì)計(jì)系統(tǒng);其次,系統(tǒng)之間的“日切處理”存在順序性和依賴關(guān)系;最后,每個(gè)系統(tǒng)的日切任務(wù)不同

1)統(tǒng)一調(diào)度模型

為了不讓各個(gè)系統(tǒng)的日切處理各自為政,采用統(tǒng)一調(diào)度的模式,由日切子系統(tǒng)進(jìn)行全局管理,通知各個(gè)系統(tǒng)執(zhí)行日切,并監(jiān)控日切進(jìn)程和結(jié)果;按照預(yù)先設(shè)定的日切順序和任務(wù)監(jiān)管各個(gè)系統(tǒng)的日切業(yè)務(wù)

2)日切點(diǎn)與記賬日期維護(hù)

日切子系統(tǒng)需要統(tǒng)一管理各類日切點(diǎn),以及當(dāng)前記賬日期,作為公共參數(shù),提供給各系統(tǒng)查詢使用

同樣,這里的日切點(diǎn)和記賬日期可以按照業(yè)務(wù)線、產(chǎn)品、商戶等多維度進(jìn)行配置,以便實(shí)現(xiàn)更加靈活的日切業(yè)務(wù)和數(shù)據(jù)切割模式

例如,即使全業(yè)務(wù)都是0:00日切,但是像酒吧、ktv等夜場(chǎng)業(yè)務(wù),可以選擇在交易量最小的12:00進(jìn)行日切,因?yàn)檫@類場(chǎng)所,夜間是交易量最大的時(shí)候

3)系統(tǒng)時(shí)段切割與運(yùn)行狀態(tài)管控

為了更好的日切任務(wù),控制日終處理的進(jìn)程,可以將全局時(shí)段進(jìn)行切割,切割成時(shí)區(qū)段,在不同的時(shí)段執(zhí)行對(duì)應(yīng)的任務(wù)

例如銀行系統(tǒng)日終處理被分割成三段:日切(Cut-Off)、日終批量(End-Of-Day)、 日初準(zhǔn)備(Begin-Of-Day)

央行系統(tǒng)的系統(tǒng)控制更加復(fù)雜,階段拆分如下圖所示,因?yàn)樯婕暗蕉鄠€(gè)支付系統(tǒng),賬務(wù)系統(tǒng)和會(huì)計(jì)系統(tǒng);還要確保日終各個(gè)機(jī)構(gòu)之間能夠完成順利清算

那么,可以將整個(gè)時(shí)間軸切割成如下階段:正常交易、日切、日終處理、交易準(zhǔn)備等

并將各階段規(guī)劃出系統(tǒng)狀態(tài),維護(hù)在日切子系統(tǒng)中進(jìn)行統(tǒng)一控制

4.2動(dòng)靜拆分和隔離

前面我們介紹了在24小時(shí)交易中,日切點(diǎn)的實(shí)時(shí)和批處理的沖突性,那么

能不能實(shí)現(xiàn)7*24小時(shí)連續(xù)交易的前提,是在日切期間和日終處理階段能不能進(jìn)行交易

所以,我們將實(shí)時(shí)的動(dòng)態(tài)區(qū),與日終的的靜態(tài)區(qū)進(jìn)行隔離,中間依靠隔離區(qū)通過“日切處理”建立起聯(lián)系,這樣就可以確保面向客戶的7*24小時(shí)聯(lián)機(jī)交易不間斷,同時(shí)對(duì)內(nèi)的日終處理又可以并行進(jìn)行

那么,在日切階段,如何處理此時(shí)的交易賬務(wù)處理就成了關(guān)鍵

4.3日切賬務(wù)處理模型

上述日切過程會(huì)產(chǎn)生兩個(gè)數(shù)據(jù),一個(gè)是動(dòng)態(tài)賬戶余額數(shù)據(jù),一個(gè)是靜態(tài)日終余額數(shù)據(jù)

而動(dòng)態(tài)余額和靜態(tài)余額都是賬戶的屬性,動(dòng)態(tài)賬戶余額受交易啟動(dòng)實(shí)時(shí)變化,而靜態(tài)日終余額受日終批處理生成;所以二者之間都依賴“賬戶”;同時(shí)日終余額又依賴動(dòng)態(tài)的賬戶余額

這也就意味著,對(duì)同一個(gè)賬戶在日切期間會(huì)同時(shí)受到實(shí)時(shí)交易和日終處理的影響,可能會(huì)被兩個(gè)事務(wù)同時(shí)更新;那么要確保這種并發(fā)更新不會(huì)造成問題,需要一個(gè)處理機(jī)制,例如賬戶雙余額法、影子賬戶并行法、應(yīng)入賬日期標(biāo)記法等

1)賬務(wù)雙余額法

這里要重點(diǎn)明確4個(gè)時(shí)間

交易時(shí)間:交易系統(tǒng)交易成功的時(shí)間,是交易系統(tǒng)的登記時(shí)間

記賬時(shí)間:賬務(wù)系統(tǒng)賬務(wù)登記的時(shí)間,是交易數(shù)據(jù)推送至賬務(wù)系統(tǒng),按賬務(wù)規(guī)則登記為憑證的時(shí)間

最后動(dòng)賬日期:賬務(wù)系統(tǒng)一個(gè)賬戶最后更新的記賬日期是什么時(shí)間,通過這個(gè)時(shí)間可以判斷出,當(dāng)前賬戶的入賬情況,例如當(dāng)前記賬日期是10號(hào),但是賬戶的最后動(dòng)賬日期是3號(hào),那就意味著,4-10號(hào)之間沒有進(jìn)行過記賬

當(dāng)前記賬日期:即日切子系統(tǒng)維護(hù)的當(dāng)前的記賬日期,這個(gè)日期所有系統(tǒng)是統(tǒng)一的,都遵循日切子系統(tǒng)的配置

搞清楚兩個(gè)余額

賬戶當(dāng)前余額:即當(dāng)前這一個(gè)時(shí)刻,賬戶的余額,這是一個(gè)動(dòng)態(tài)實(shí)時(shí)更新的余額,發(fā)生記賬,這個(gè)余額就會(huì)實(shí)時(shí)變化;所以說這個(gè)余額由交易驅(qū)動(dòng)實(shí)時(shí)更新

賬戶上日終余額:這個(gè)是上一日最后一筆交易記賬完成后的賬戶余額,這個(gè)余額一旦生成,原則上不再發(fā)生變化,即是一個(gè)靜態(tài)的余額;所以這個(gè)余額由日切驅(qū)動(dòng),在哪一個(gè)完成更新

這樣,我們將賬戶設(shè)置3個(gè)參數(shù),最后動(dòng)賬日期、上日終余額、當(dāng)前余額他們之前存在如下關(guān)系

那么這里要做一個(gè)模式的選擇,就是如何進(jìn)行上日終余額的更新,因?yàn)楫?dāng)前余額的更新就是動(dòng)賬才更新,而日終余額的更新方式有多種

動(dòng)賬時(shí)更新上日終余額

即當(dāng)賬務(wù)有新的入賬時(shí),根據(jù)“最后動(dòng)賬日期和當(dāng)前記賬日期”來判斷余額更新

如果“最后動(dòng)賬日=當(dāng)前記賬日”,即當(dāng)前入賬是當(dāng)天的入賬,只需要更新當(dāng)前賬戶余額即可:Balance7=Balance6+本筆發(fā)生額;如下圖所示

如果“最后動(dòng)賬日≠當(dāng)前記賬日”,即當(dāng)前入賬是新一天的入賬,則需要更新上日終余額和當(dāng)前賬戶余額:上日終余額更新為當(dāng)前的賬戶余額Balance6;并再將當(dāng)前余額更新為:Balance7=Balance6+本筆發(fā)生額;并將最后動(dòng)賬日更新為新的記賬日期;如下圖所示

這種更新模式下,因?yàn)闆]有動(dòng)賬的情況下上日終余額是不會(huì)更新的,所以日終余額的查詢服務(wù)也要進(jìn)行最后動(dòng)賬日和當(dāng)前記賬日期的查詢

“最后動(dòng)賬日=當(dāng)前記賬日”:則直接取上日終余額字段的值即可

“最后動(dòng)賬日≠當(dāng)前記賬日”:說明已經(jīng)完成日切了,但是新的記賬日還沒有入賬,那么賬戶登記的上日終余額已經(jīng)不是昨日了,而是更久之前的;此時(shí)應(yīng)該取當(dāng)前的賬戶余額作為“上日終余額”

日切時(shí)更新上日終余額

動(dòng)賬時(shí)更新上日終余額會(huì)造成“上日終余額”的不準(zhǔn)確;所以可以執(zhí)行日切時(shí)更新上日終,不管有沒有動(dòng)賬發(fā)生,每次發(fā)生日期都進(jìn)行上日終余額的更新,而且同時(shí)更新最后動(dòng)賬日期,這樣每次取上日終余額,直接取即可

因?yàn)樵谌战K處理過程中,聯(lián)機(jī)交易也在進(jìn)行,因?yàn)槿战K處理需要一定的時(shí)間,所以,為了確保聯(lián)機(jī)交易正常對(duì)賬務(wù)的更新,那么依然保持“動(dòng)賬更新余額的模式”

這就意味著,有可能出現(xiàn)聯(lián)機(jī)交易和日終處理同時(shí)更新賬戶余額,那么為了解決這一問題,就需要進(jìn)行賬戶余額的加鎖;誰先更新,誰執(zhí)行,另一方等待;直到鎖解除了,等待的一方再執(zhí)行余額更新

2)影子賬戶并行法

雙賬戶方看起來邏輯簡(jiǎn)單,但是表結(jié)構(gòu)比較復(fù)雜,而且按日更新余額模式下,可能存在日終處理和實(shí)時(shí)處理的賬戶余額更新沖突,會(huì)形成一個(gè)排隊(duì)期,這樣就會(huì)在日切點(diǎn)造成一定的賬務(wù)延遲

那么為了確保聯(lián)機(jī)交易和批量處理完全并行處理,而且不沖突,可以采用雙賬戶法,即為每個(gè)分戶設(shè)置一個(gè)影子臨時(shí)賬戶,來處理日切和日終處理的沖突期的聯(lián)機(jī)交易的實(shí)時(shí)記賬

當(dāng)系統(tǒng)運(yùn)行狀態(tài)進(jìn)入日切和日終階段時(shí),臨時(shí)影子賬戶開始運(yùn)行,聯(lián)機(jī)交易記賬實(shí)時(shí)記賬不再更新主賬戶,而是登記在這個(gè)臨時(shí)賬戶中

正常記賬期:主賬戶正常記賬

雙賬戶記賬期:日終操作主賬戶,更新上日終余額,當(dāng)前賬戶余額保持靜止,此時(shí)期“當(dāng)前賬戶余額=上日終賬戶余額”

該階段需要注意一點(diǎn),就是對(duì)外的賬務(wù)服務(wù),例如用戶看到的“當(dāng)前賬戶余額=主賬戶當(dāng)前賬戶余額+臨時(shí)賬戶發(fā)生額”

調(diào)賬期:在這個(gè)時(shí)期,日間交易開始更新主賬戶,同時(shí)臨時(shí)賬戶的臨時(shí)登記交易也要調(diào)賬到主賬戶,其實(shí)臨時(shí)賬戶的調(diào)賬跟聯(lián)機(jī)交易更新主賬戶沒有區(qū)別;調(diào)賬完成以后,清空臨時(shí)賬戶

3)應(yīng)入賬日期標(biāo)記法

前面我們提出了一個(gè)記賬漂移的現(xiàn)象,會(huì)造成系統(tǒng)間數(shù)據(jù)切割的不一致

可以通過上游系統(tǒng)標(biāo)記該筆交易的“應(yīng)入賬日期”,來規(guī)避記賬的漂移,例如在日切運(yùn)行狀態(tài)期間的記賬,交易系統(tǒng)先執(zhí)行了日切,那么最后5分鐘的交易標(biāo)記上“應(yīng)入賬時(shí)間”,這樣,賬務(wù)系統(tǒng)對(duì)于打上了應(yīng)入賬時(shí)間的交易執(zhí)行記賬時(shí)間修復(fù)機(jī)制,將其記賬時(shí)間特殊處理標(biāo)記為上一個(gè)記賬日,來規(guī)避時(shí)間差問題

4)自然日切,不做特殊處理

當(dāng)然對(duì)于像一些支付機(jī)構(gòu),交易平臺(tái),因?yàn)椴簧婕暗接?jì)息、罰息、貸款預(yù)期等的業(yè)務(wù)處理,那么對(duì)日終余額沒有過多依賴,像有的機(jī)構(gòu)就不存在上日終余額這個(gè)數(shù)據(jù),那么可以選擇不設(shè)置日切機(jī)制;按照自然日自然日切即可

以上就是針對(duì)日切解決方案的一些常見思路和解法

五、日切案例

日切作為一個(gè)業(yè)務(wù)周期切換關(guān)鍵點(diǎn),圍繞日切這個(gè)時(shí)間點(diǎn),也會(huì)發(fā)生一些有意思的事情

1)跨周期調(diào)賬

及時(shí)做到萬無一失,也會(huì)百密一疏,或者某些業(yè)務(wù)天然就存在一些固定時(shí)間調(diào)賬的情況

例如,對(duì)上一個(gè)周期的補(bǔ)貼調(diào)入,漏賬補(bǔ)入等等,都是要在一個(gè)新的記賬日期去調(diào)入上一個(gè)記賬日期的賬,當(dāng)然,這筆賬也可以記入本期

2)上日終余額的用途很多

有些機(jī)構(gòu)沒有上日終余額,這個(gè)有時(shí)候會(huì)給他人造成困擾,例如如果商戶需要做余額調(diào)節(jié)表,那么便無法獲取到在機(jī)構(gòu)賬戶的上日終余額,這無疑是一件很頭疼的事情,總不能讓商戶自己用明細(xì)去計(jì)算吧

另外就是銀行的利息計(jì)算一般按照上日終余額進(jìn)行,很多業(yè)務(wù)都跟靜態(tài)余額有關(guān)系,所以靜態(tài)余額的生成和準(zhǔn)確性對(duì)銀行的存款業(yè)務(wù)、貸款業(yè)務(wù)至關(guān)重要

3)日切套利

早期很多銀行的日切時(shí)間不同,有21:00的、有22:00的、有23:00的、有0:00的;在日切點(diǎn)會(huì)生成上日終余額

而銀行計(jì)息又是根據(jù)上日終余額去計(jì)算,那么這里就有一個(gè)有意思的事情,將存款從一個(gè)機(jī)構(gòu)的日切后取出,那么你是可以拿到上一天的利息的;在另一個(gè)機(jī)構(gòu)的日切前存入,又可以拿到這個(gè)機(jī)構(gòu)的一天的利息

所以,這是利用不同銀行核心系統(tǒng)每日記賬時(shí)點(diǎn)的時(shí)間差,短時(shí)間內(nèi)在多家銀行間轉(zhuǎn)存,實(shí)現(xiàn)同一筆資金在同一日被多家銀行確認(rèn)為日終存款的行為

這里只是說明這種行為,是違法行為,大家請(qǐng)勿效仿

4)余額計(jì)息方法

了解一個(gè)計(jì)息方法,再去回看上面的日終余額,你會(huì)有一個(gè)更深刻的認(rèn)識(shí),為什么日終余額那么重要即根據(jù)存款賬戶的每日余額計(jì)算賬戶利息的一種方法,以上日終余額為計(jì)息基礎(chǔ)

其中大寫i是利息金額,Bi是第i日的存款余額即第i日的日終余額,r為年利率

本文由人人都是產(chǎn)品經(jīng)理作者【陳天宇宙】,微信公眾號(hào):【陳天宇宙】,原創(chuàng)/授權(quán) 發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來自Unsplash,基于 CC0 協(xié)議。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 目前還沒評(píng)論,等你發(fā)揮!