王曉義

摘 要本文提供了一種批量處理系統的設計,可以從大數據量的數據中高效篩選出需要生成文件的數據并在日終處理時高效生成文件并發送其他系統。
【關鍵詞】批量處理系統 日志調度 時間片 數據預處理
批量處理子系統是POS收單系統設置于批量數據庫上的一個子系統,專門用于聯機交易后的文件處理。文件處理包括文件生成、文件收發和文件裝載。
批量處理子系統是POS收單系統的核心子系統,創建一個高效、容錯、穩定的批量處理子系統將有效地保證系統的正確運行。
1 設計方法與決策
根據批處理子系統的業務需求和技術要求,系統的設計遵循了以下原則:
1.1 流程化設計
在設計上,將共同點抽象出來,形成批量處理子系統的共用服務,通過不同的服務調用流程來實現。設置統一的流程調度服務,批量處理子系統中,所有業務流程的實現均由流程調度控制服務調度不同的服務來實現。批量處理事件的引發,將通過界面觸發運行的方式實現。
1.2 服務進程并發技術
采用多服務進程并發技術,提高數據的處理能力。
批量處理使用的日志表索引根據數據訪問的使用習慣來劃分邏輯分區,在物理上進行物理群集,以保持較大的存儲塊和較快的索引速度。
在批量處理過程中啟動多個處理進程,一個處理進程一次只處理一個邏輯分區,每個處理進程每次處理的記錄個數根據邏輯分區來確定。處理進程劃分為多個可最大限度地利用CPU資源,邏輯分區的劃分可最大限度提高IO性能。處理進程的數量需通過實驗來確定最佳組合。
文件生成和裝載進程的并發處理是為保證系統產生和接收的大量文件能得到及時的處理。
1.3 時間片處理技術
針對數據量大和數據更新覆蓋面廣的特點,對聯機日志采用分時間片處理的技術,按照預先設定的時間片開始批量處理過程,這樣在全天都可以進行批量處理,保證了批量處理的效率。
1.4 數據清理技術
為保證在數據清理時不會產生碎片,批量庫的日志表采用多張表循環使用,一張存放一個清算日的交易,在清理時用“truncate表”來清理表的內容,避免產生碎片。
1.5 文件數據預生成技術
在批量處理過程中,要判斷該記錄是否需要產生文件,如果需要,要將該記錄預先插入到文件明細表中。文件的生成是以POS終端批結引發的,文件明細表中的數據是文件生成的原始數據,但只有在相應終端批結后才會產生對應的文件。這樣在終端批結時,要搜索的數據不再是日志表,而是數據量小得多的文件明細表,這樣就極大地縮短了文件生成的時間。
文件明細表的設計如下:
(1)為數據清理的方便,采用兩套文件明細表,每次在生成文件明細信息時,要查詢生成到哪張表。
(2)在數據表切換時,要計算是否要切換文件明細表。按照事先設置的切換周期參數和上次切換的時間計算是否需要切換,如果需要,則執行文件明細信息表切換。文件明細表的切換周期要大于30天。
(3)執行文件明細表切換時,對還未生成文件的記錄要在清理前轉移到新的要切換的文件明細表中。
1.6 五高設計
1.6.1 高性能實現方案
針對數據量大和數據更新覆蓋面廣的特點,在批量處理子系統設計中,采用時間片處理技術,充分利用處理器資源和時間。另外,對數據進行有效分塊,采用多進程并行處理,以提高系統CPU和內存資源利用率。
1.6.2 高可用性實現方案
在高可用性方面,采用多機部署的方案,充分利用中間件提供的動態服務配置、多機之間各服務的相互備份特性,保證在一個服務或一臺服務器出現異常的情況下,子系統仍然可以正常提供所有服務,保證整個系統的強壯性。
1.6.3 高可靠性實現方案
在單臺服務器上,由中間件實現對所有服務的監控和管理,其中某一個服務不能響應請求時,中間件將自動重新啟動該服務。多機部署的方案保證了多機之間各服務的相互備份特性,保證在一個服務或一臺服務器出現異常的情況下,子系統仍然可以正常提供所有服務,保證整個系統的高可靠性。
1.6.4 高可擴展性實現方案
通過流程調度服務實現對每個處理步驟和服務可變調度,以適應新業務需求,系統具有較高的可擴展性。多機部署的方案本身就體現了系統的高擴展性。當業務發展到一定階段,硬件配置已不能滿足要求,可以將批量處理子系統部署在多臺服務器上,利用中間件平臺的分布處理功能,將部分服務分流到其他服務器上。
1.6.5 高可管理性實現方案
所有服務部署在中間件平臺上,按中間件的規范統一設計,由中間件統一管理。對于每個服務,通過中間件管理平臺可以簡單地增加或減少進程數,在系統運行過程中,通過對系統記錄數據的分析統計,結合經驗值,對系統進行漸趨更合理的資源配置,體現了高可管理性。
2 子系統總體框架設計
基于目前的需求分析,批量處理子系統的應用框架如圖1所示。
由流程調度控制服務、流程調度檢查服務、日志處理調度服務對上述日志處理、文件處理和輔助處理三類中的服務進行調度,調度過程充分考慮數據預處理、并行處理,以提高處理效率。
3 總結
本文以模塊化的方法提供了一種批量系統的設計,特別是時間片技術和數據預處理技術,對金融系統的批量處理系統的設計有一定的借鑒意義。
參考文獻
[1]溫昱.軟件架構設計[M].北京:電子工業出版社,2007.
作者單位
中國銀聯股份有限公司技術開發中心 上海市 201201