核心銀行系統 7 X 24小時 不間斷運行的核心系統設計(方案一)

夜間批處理,如生成會計流水文件、總分對賬文件、日終充值文件等,按賬戶當日日終餘額或當日交易流水進行統計彙總,需要保持數據的一定靜止,而夜間聯機交易會更新賬戶餘額,賬戶餘額爲動態。一般批量處理與聯機處理的衝突區主要在賬戶餘額,解決批量用賬戶日終餘額與聯機用賬戶實時餘額的存儲與使用問題,可很大程度實現7×24業務服務。也即解決總分賬、會計賬一致問題。

 

實現7x24服務,最關鍵的要點在於保證兩份數據的準確並存:

  • 動態實時數據(實時餘額):主要是動賬及日間查詢交易使用
  • 日切點的靜態數據(上日餘額):主要用於批處理:比如總分覈對、財務供數等

 

目前各廠商主要使用的方案有以下幾種:

  • 單表雙餘額
  • 雙表(雙表又分兩種:臨時表爲分戶臨時表或是流水臨時表)

工商銀行模式雙主檔、單餘額、雙流水, 中國銀行模式雙主檔、單餘額、單流水, 建設銀行模式單主檔、雙餘額、雙流水,  民生銀行模式單主檔、單餘額、雙流水

 

參考建行方案,結合雙日期、雙餘額的分戶帳設計,制定如下方案:

 

雙餘額每日更新方案

分戶賬上設置當前餘額、上日餘額、最後交易日期。根據以上字段來實現當前餘額、上日餘額的讀取和更新,系統每天將當前餘額更新到上日餘額,當前交易日期更新到最後交易日期。 其中當前交易日期也稱會計日,存放在銀行日期表

1. 日終批量刷新上日餘額

日終切日後一開始直接批量刷新上日餘額,便於後續讀取及供數。爲避免長時間鎖表,該批量任務逐筆處理。

  • 對於一筆分戶賬,
  • IF 最後交易日期 < 當前交易日期
  • UPDATE 分戶賬 SET 上日餘額=當前餘額,最後交易日期=當前交易日期

2. 動賬處理

切日後,日終批量刷新需要一段時間,爲確保在此期間的聯機交易正常對外服務,動賬時當日第一筆交易更新上日餘額、最後交易日期。

首先檢查帳戶的‘最後交易日期’與‘當前交易日期’是否相同,如果不同,說明該帳戶第一次更變餘額,此時要將‘當前餘額’放入‘上日餘額’,‘最後交易日期’更改爲此‘當前交易日期’,並記錄交易流水,該交易流水的日期爲日切後當前交易日期。 換日後的第二筆及更多交易,只更新當前餘額,並記錄交易流水。

聯機交易與日終批量更新上日餘額有極小的可能會出現衝突(同時更新同一賬戶)。如果發生,解決如下:(1) 如果批量鎖表,聯機失敗,交易重做將成功。 (2)如果聯機鎖表,批量失敗,批量重新從斷點重跑。

 

3. 獲取上日餘額處理

取上日餘額的情景均在日終刷新上日餘額之後,直接取分戶賬中的上日餘額即可。

 

參考鏈接

https://www.jianshu.com/p/c0c20144027b

https://zhuanlan.zhihu.com/p/20894306

上述兩個鏈接的方案合併閱讀,可得方案。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章