tickcount()修改成小時分鐘_銀行核心系統24小時機制實現總結

852fb4f89f6b7b4a98e4aed14662c3f2.png

本文共2268字 | 建議閱讀時間:5分鐘

作者:張廣

在核心系統的設計實現中,24小時機制向來是一個重點難點。早期的銀行只有柜面一個業務辦理渠道,因此當時的綜合業務系統,跟隨網點的營業時間,分為日起,營業,日結,日終批量這幾個階段。所有網點日結后,才開始日終批量,這時是不辦理聯機業務的。

隨著科技發展,銀行逐漸開展了自助設備,網上銀行,手機銀行等多種電子渠道,接入了支付系統,銀聯系統等第三方接口。這時,對核心系統就提出了的24小時支持的要求。

24小時實現機制有準24小時和真24小時之分。

準24小時是核心系統在日切時停止聯機交易一小段時間,待日切完成后再啟動聯機,通常時間控制在幾分鐘內,這段時間內未完成的聯機交易被強行中斷,不接收新的交易請求。真24小時是不停聯機,在任意時間聯機交易都可以正常發送處理,不會中斷。

下面總結的就是真24小時的實現方案。要做到真24小時,需從以下幾個方面解決。

1、 分戶賬的改造

分戶賬處理主要有兩種情況。

一是交易的記賬日期可以先發生次日,再發生前日。例如,日切后先發生過次日的聯機交易,再執行日終批處理記上日賬。又比如,在日切點交易并發時,日切后的交易先被調度到執行完畢,日切前的交易后被調度執行。

二是日終批處理中能獲取上日結束的準確余額。

主要的解決方法有AB表法,追賬法,雙字段法等幾種,其中最優的當屬雙字段法。在分戶賬表中設置當前余額,上次更新日期,上日余額。發生交易時,用交易日期與上次更新日期比較。如果交易日期大,說明進入新的一天,將當前余額搬入上日余額,再更新當前余額,記錄上次更新日期為交易日期。如果相等,說明是當天的后續交易,只更新當前余額,上日余額和上次更新日期不變。如果交易日期小,說明先發生了次日交易,這時同時更新上日余額和當前余額,上次更新日期不變。在日終批處理獲取上日余額進行統計時,同樣先判斷上次更新日期,如果上次更新日期小于或等于上日,說明新的一天沒發生過交易,取當前余額,否則說明新的一天已發生交易,取上日余額。2、?序號表的改造

核心系統有很多序號,是按周期設置的,最常見的是日序號,每天從1重新開始。原先常見的做法是,通過日切后一個序號初始化批處理,批量清零。

24小時情況下就不能如此了,同樣也要考慮兩個日期以及先后順序的問題。與分戶賬類似,使用雙字段法給序號表設置當前序號,上次更新日期,上日序號,解決不同日期交易取用的問題。

3、?明細類的改造

明細類包含有賬戶明細,記賬傳票流水等這類帶日期的記錄表。

以往的系統,在日切過程中進行當前表刪除并導入歷史表的操作,導出期間會影響按日期的查詢結果,這也是24小時需要避免出現的。

解決方法是,將這類表按日期分表或分區,操作時根據日期就可算出應該操作的表名或分區名,免除了數據的搬移。這樣在任意時間均可支持正確的寫入和查詢。

4、?沖正交易的改造

外圍發起沖正時,無法判斷何時日切,因此核心應只提供統一的沖正交易,后臺根據原交易記賬日期和當前日期判斷是當日沖正還是隔日沖正,并支持隔日沖正的處理。

特別提一點,批處理中,日切這一任務應等待1個聯機交易超時時間,以防批處理過快,前日的交易未處理完就在后續批處理任務中獲取上日余額。

此外,系統在版本更新時,也需要考慮如何盡量支持不停止聯機服務。更新時還需注意一定要保證同一筆交易內不同程序版本的一致性,不能出現部分舊版本部分新版本的情況。

5、?程序版本更新時的處理

如果應用系統支持運行中動態加載卸載庫和名稱綁定,例如Unix環境的動態鏈接庫,則可以通過控制交易結束后開始前進行動態庫的卸載加載,來保證交易內程序版本的一致性。

這種方式對于普通修復是可以了,但有時會嚴格要求新舊版本不能并存,切換時間點后必須全部執行新版本,這時候就要用額外的方法了,即暫掛請求交易的處理。

在每個并發進程上一交易結束后,接收完新的連接請求,下一交易開始前,通過標志控制暫停處理,可以保持連接。當所有并發進程都處于暫停狀態時,說明原有交易均已處理完成。

版本更新后,修改標志放開處理,這時原先暫掛的交易會繼續處理,對外感覺僅僅是這筆交易響應時間變長了,并未發生服務的中斷。

6、?參數表內容更新時的處理

通常參數表是加載至緩存的,因此只要控制緩存更新的時機即可。參數表不會太大,緩存更新很快能完成,因此放在交易結束后開始前加載更新。

同樣,如果嚴格要求新舊不能并存,也仍需要暫掛請求交易處理。

7、?數據庫表結構更新時的處理

表結構的變動分為新增表,刪除表,新增字段,修改刪除字段這幾類。新增表和刪除表時通過操作順序很容易做到不停止聯機服務。

新增表時先建表,后更新程序,刪除表時先更新程序,后刪表。新增字段,修改刪除字段可以通過SQL語句進行,執行期間會鎖表,因此需要預先評估SQL執行時間長短。

如果表數據量較大則需要用以下的方式實現切換:首先暫掛交易的接收請求處理,將原表rename為舊表,并以新的結構建立空的新表。修改訪問這個表的所有程序,改為訪問新表和舊表的合集的版本。

隨后開放交易處理,并以后臺進程的方式,逐漸將舊表的記錄一點一點搬移至新表,直到舊表為空。最后修改訪問這個表的所有程序,恢復成僅訪問新表的版本即可。

隨著銀行對服務可用性要求越來越高,核心系統的設計也應當充分考慮,盡可能實現完全不停機的連續運行,這也是設計人員對優秀核心系統的追求目標。

----------? END? ----------

也許你還想看

銀行核心系統項目過程步驟銀行核心系統在銀行IT架構中的功能邊界銀行核心系統之分表分區和批處理性能優化

85b4e03fc30c24001bb7335f0cf9ce13.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/537249.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/537249.shtml
英文地址,請注明出處:http://en.pswp.cn/news/537249.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

美國將嘗試區塊鏈領域和加密貨幣相結合

首期隱匿性研究綜述有三篇涉及以太坊Casper缺陷問題的論文評論,比特幣通用貨幣理想的內在限制存在兩個問題:以太坊Casper的缺陷問題、比特幣UTXO解決方案的發展。 美國新聞報道,加密貨幣與區塊鏈跨領域研究同儕評論這項一項大膽嘗試&#xff…

python 人氣高的項目_給大家推薦:五個Python小項目,Github上的人氣很高的

deepfake 的深度學習技術,這款工具本來的用途是用來識別和交換圖片、視頻中人物臉部圖像的工具 。該項目有多個入口,你需要做的事:● 收集照片● 從原始照片中提取面部圖像● 在照片上訓練模型● 使用模型轉換源代碼3.神經網絡庫 kerashttps:…

WBS結果輸出表

目錄??????? 概述 模板 案例 擴展閱讀 概述 花了很大力氣分解的WBS,要趁熱打鐵,把每個活動落實到人。 模板 推薦一個模板 1:修改成項目名 2:填寫項目基本信息 3:WBS的最底層工作包 4:工作…

scala:對象object

Scala沒有靜態方法或字段,可以用對象object(首字母小寫)結構完成類似的功能。 object M {var count 0;def inc {count 1; count}def main(args: Array[String]){println(M.count)M.incprintln(M.count)} }對象的構造器在對象第一次被使用時…

svd奇異值分解_傳統推薦算法(一)SVD推薦(1)解讀奇異值分解

文章目錄寫在前面1. 從幾何變換到奇異值分解2. 代數角度理解奇異值與奇異向量2.1 從正交基映射推導SVD2.2 特征值分解求解奇異值和奇異向量2.2.1 求解過程2.2.2 推論2.3 SVD的另一種形式3. 幾何角度理解奇異值與奇異向量3.1 從坐標變換理解3.1.1 從例子到一般3.1.2 兩個問題3.2…

信息化項目WBS實戰總結

概述 前面花了幾個篇幅講解了WBS,這篇文章總結下實戰要點。 第一篇:項目中的WBS分解 第二篇:項目的可交付成果 第三篇:WBS工作包 第四篇:WBS結果輸出表 劃重點 1.WBS是對“可交付成果”的分解,可交付…

kafka 支持發布訂閱

概述 一般消息隊列的是實現是支持兩種模式的,即點對點,還有一種是topic發布訂閱者模式,比如ACTIVEMQ。KAFKA也支持這兩種模式,但是實現的原理不一樣。 KAFKA 的消息被讀取后,并不是馬上刪除,這樣就可以重復…

svn管理工具_主流代碼管理工具深度評測

引言 作為有十幾年IT行業代碼的從業人員,經歷過代碼管理工具的變遷,從早期的微軟的Source Code Control,到TFS,再到SVN,再到現在的Git。我深知代碼管理工具是代碼開發過程中非常重要的工具。市場上的代碼管理工具有很多…

假設條件和制約因素的理解

目錄 假設條件 制約因素 假設條件和制約因素都記錄在假設日志中。 假設條件 假設條件是指當前不能確定的、未經驗證但仍被視為正確、真實或確定的因素。 假設條件存在不確定性,影響項目規劃的所有方面;項目實施過程中假設條件一旦不成立就可能造成相…

深入理解Java的三種工廠模式

一、簡單工廠模式簡單工廠的定義:提供一個創建對象實例的功能,而無須關心其具體實現。被創建實例的類型可以是接口、抽象類,也可以是具體的類實現汽車接口public interface Car {String getName();}奔馳類public class Benz implements Car {…

項目管理PMBOK中的八大會議

目錄 一、項目啟動會 initiating meeting 二、項目開踢會議 kick-off meeting 三/四:焦點小組會議&引導式研討會 五、規劃會議與分析 六、狀態審查會 七、投標人會議 八、項目經驗總結會 一、項目啟動會 initiating meeting 1、召開時間:是啟…

python函數的繼承_Python 繼承

版權所有,未經許可,禁止轉載Python 繼承繼承允許我們在定義一個類時,讓該類繼承另一個類的所有方法和屬性。父類是被繼承的類,也稱為基類。子類是繼承父類的類,也稱為派生類。創建父類任何類都可以是父類,創…

MySQL 使用Node.js異步查詢結果為undefined的簡單處理辦法

//定義查詢過程,化異步為同步 function name(SQL_TXT, Respond) {ExecuteSQL(1, SQL_TXT);var i 0;var SetName setInterval(function () {if (i > 19) {clearInterval(SetName);}console.log("Tqr :第" i "次 obtain , Value : \n" Tqr " \…

python中的裝飾器怎么運行_Python 裝飾器入門(上)

翻譯前想說的話:這是一篇介紹python裝飾器的文章,對比之前看到的類似介紹裝飾器的文章,個人認為無人可出其右,文章由淺到深,由函數介紹到裝飾器的高級應用,每個介紹必有例子說明。文章太長,看完原文后我計劃…

我的2018

寫在開始 2018年以飛快的速度臨近尾聲了,只感慨時間過得真快! 這一年過得算是平平淡淡,沒有比較特別的地方。 工作 從去年8月來到這公司,是個做旅游產品的互聯網公司,平時里做的事可以說是很簡單,我只能說&…

IntelliJ IDEA快捷鍵總結

搜索類快捷鍵 快捷鍵描述Ctrl F文件內查找字符串Ctrl Shift F按照文本的內容查找雙擊Shift查找任何內容,可搜索類、資源、配置項、方法等,還能搜索路徑Ctrl Shift R全局資源查找和替換Ctrl N按類名搜索類,比如 Java,Groovy…

python小波分析法檢測火焰_一種基于小波分析的網絡流量異常檢測方法

一種基于小波分析的網絡流量異常檢測方法杜臻;馬立鵬;孫國梓【期刊名稱】《計算機科學》【年(卷),期】2019(046)008【摘要】對大量網絡流量數據進行高質量特征提取與異常識別是做好網絡取證的重要基礎.文中重點研究并實現了網絡取證中的數據處理并建立了模型庫.對一種基于小波分…

初學Linux第三周

簡單shell腳本:#!/bin/bash 第一行必須包括shell聲明序列:#!##********************************************************************#Author: *****#QQ: *****#Date: 2018-12-31#FileName: hello.sh#URL: http#Descriptio…

python使用ddt找不到方法_python使用ddt過程中遇到的問題及解決方案【推薦】

前言:在使用DDT數據驅動HTMLTestRunner輸出測試報告時遇到過2個問題:1、生成的測試報告中,用例名稱后有dict() -> new empty dictionary2、使用ddt生成的用例名稱無法更改1、用例名稱后有dict() -> new empty dictionary報告中用例名稱…

合同的不含稅與稅額怎么算

假設稅率是6% 不含稅金額=總金額/1.06 稅額=不含稅金額0.06 增值稅在線計算器:http://www.ab126.com/goju/7332.html 大小寫轉換:https://link.fobshanghai.com/rmb.htm?t1525225925284 工作日計算:http://www.fy…