云平臺(tái)基于日志實(shí)現(xiàn)交易回放和重做的系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)軟件技術(shù)領(lǐng)域,尤其涉及云平臺(tái)應(yīng)用系統(tǒng)領(lǐng)域,具體是指一種云平臺(tái)基于日志實(shí)現(xiàn)交易回放和重做的系統(tǒng)及方法。
【背景技術(shù)】
[0002]隨著云平臺(tái)技術(shù)的發(fā)展越來(lái)越成熟,一些企業(yè)和機(jī)構(gòu)也更愿意把業(yè)務(wù)系統(tǒng)放到云服務(wù)上運(yùn)行。在云平臺(tái)微服務(wù)的架構(gòu)下,應(yīng)用部署相對(duì)比較零散,日志也沒(méi)有做到統(tǒng)一規(guī)整。業(yè)務(wù)系統(tǒng)在日常運(yùn)行交易處理中不可避免會(huì)有異常情況的發(fā)生??赡軙?huì)遇到如下三個(gè)普遍性的問(wèn)題和需求:業(yè)務(wù)系統(tǒng)交易異常需要一個(gè)統(tǒng)一處理和報(bào)送的機(jī)制、異常后排查問(wèn)題需要將發(fā)生異常的業(yè)務(wù)進(jìn)行回放、交易數(shù)據(jù)需要通過(guò)交易重做來(lái)核對(duì)。因此,需要有一套系統(tǒng)性的方法來(lái)解決交易時(shí)異常預(yù)警、事后業(yè)務(wù)回放和交易重做等一系列問(wèn)題。
[0003]針對(duì)此需求,目前各大金融領(lǐng)域的企業(yè)有傳統(tǒng)的解決方案。在異常捕獲和報(bào)送功能的實(shí)現(xiàn)方案,一般采用的是在代碼級(jí)別捕獲異常后進(jìn)行處理和報(bào)送,每個(gè)系統(tǒng)有著獨(dú)立的報(bào)送程序。在交易重現(xiàn)和交易重做的實(shí)現(xiàn)方案,一般采用線下模擬的方式。例如:將線上的數(shù)據(jù)庫(kù)和文件系統(tǒng)等備份到磁盤,再將磁盤的數(shù)據(jù)導(dǎo)入線下環(huán)境執(zhí)行一遍后和線上數(shù)據(jù)做比對(duì),得出交易結(jié)果。
[0004]上述傳統(tǒng)的異常捕獲和報(bào)送方案,存在以下弊端:首先,異常分析和報(bào)送程序依附于原系統(tǒng)上,當(dāng)異常處理壓力較大時(shí),會(huì)對(duì)原系統(tǒng)造成很大的影響,甚至更嚴(yán)重的會(huì)導(dǎo)致宕機(jī)事故。其次,當(dāng)一個(gè)企業(yè)擁有多個(gè)系統(tǒng)時(shí),異常不能統(tǒng)一收集、分析和報(bào)送,不利于歸總整理。
[0005]上述傳統(tǒng)的交易重現(xiàn)和交易重做方案,存在以下弊端:首先,一般交易系統(tǒng)數(shù)據(jù)庫(kù)和文件系統(tǒng)的數(shù)據(jù)量非常大,備份和還原的整個(gè)過(guò)程會(huì)消耗大量時(shí)間,導(dǎo)致效率不高。其次,此方案無(wú)法重復(fù)執(zhí)行驗(yàn)證,操作不方便。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的是克服了上述現(xiàn)有技術(shù)中異常和日志分布零散、交易重現(xiàn)和重做執(zhí)行效率低下、操作不便的缺點(diǎn),提供了一種能夠?qū)崿F(xiàn)統(tǒng)一日志收集、異常報(bào)送以及高效率的交易重現(xiàn)和交易重做、具有更廣泛應(yīng)用范圍的云平臺(tái)基于日志實(shí)現(xiàn)交易回放和重做的系統(tǒng)及方法。
[0007]為了實(shí)現(xiàn)上述目的,本發(fā)明的云平臺(tái)基于日志實(shí)現(xiàn)交易回放和重做的系統(tǒng)及方法具有如下構(gòu)成:
[0008]該云平臺(tái)基于日志實(shí)現(xiàn)交易回放和重做的系統(tǒng),其主要特點(diǎn)是,所述的實(shí)現(xiàn)交易回放和重做的系統(tǒng)包括:
[0009]日志記錄推送引擎,用以記錄業(yè)務(wù)系統(tǒng)的異常運(yùn)行日志、正常運(yùn)行日志和交易記錄日志并將記錄的日志文件推送至日志分析報(bào)送模塊;
[0010]日志分析報(bào)送模塊,用以接收推送的日志文件并分析得到異常運(yùn)行數(shù)據(jù)、正常運(yùn)行數(shù)據(jù)或交易進(jìn)行數(shù)據(jù)以及將異常運(yùn)行數(shù)據(jù)報(bào)送至業(yè)務(wù)系統(tǒng)管理員;
[0011]日志查看導(dǎo)出模塊,用以根據(jù)用戶選擇的條件查詢用戶所需要的日志內(nèi)容或交易信息并將查詢結(jié)果導(dǎo)出為報(bào)表;
[0012]交易回放和重做引擎,用以根據(jù)用戶選擇需要回放或重做的交易提取所述的交易進(jìn)行數(shù)據(jù)并執(zhí)行交易回放或交易重做。
[0013]較佳地,所述的日志記錄推送弓I擎包括:
[0014]日志記錄單元,用以配置日志記錄規(guī)則并記錄業(yè)務(wù)系統(tǒng)的異常運(yùn)行日志、正常運(yùn)行日志和交易記錄日志;
[0015]日志推送引擎,用以將記錄的日志文件推送至日志分析報(bào)送模塊。
[0016]更佳地,所述的日志分析報(bào)送模塊包括:
[0017]日志收集單元,用以接收所述的日志推送引擎推送的日志文件;
[0018]日志分析單元,用以根據(jù)所述的日常記錄單元配置的日志記錄規(guī)則對(duì)日志文件進(jìn)行分析得到異常運(yùn)行數(shù)據(jù)、正常運(yùn)行數(shù)據(jù)或交易進(jìn)行數(shù)據(jù);
[0019]異常報(bào)送單元,用以當(dāng)分析異常運(yùn)行日志時(shí)將異常運(yùn)行數(shù)據(jù)報(bào)送至業(yè)務(wù)系統(tǒng)管理員。
[0020]較佳地,所述的日志查看導(dǎo)出模塊包括:
[0021]日志查詢單元,用以根據(jù)用戶選擇的條件從日志索引中查詢用戶需要的日志內(nèi)容并進(jìn)行展示;
[0022]交易查詢單元,用以通過(guò)用戶選擇的條件從日志提取的交易進(jìn)行數(shù)據(jù)中查詢需要的交易信息并進(jìn)行展示;
[0023]結(jié)果報(bào)表導(dǎo)出單元,用以將用戶查詢的內(nèi)容生成結(jié)果報(bào)表。
[0024]較佳地,所述的交易回放和重做引擎包括:
[0025]交易環(huán)境初始化數(shù)據(jù)生成單元,用以根據(jù)用戶選擇需要回放或重做的交易提取所述的交易進(jìn)行數(shù)據(jù),以及根據(jù)提取的交易進(jìn)行數(shù)據(jù)和配置的規(guī)則,生成數(shù)據(jù)庫(kù)初始化腳本;
[0026]業(yè)務(wù)系統(tǒng)交易回放代理單元,用以根據(jù)需要回放的交易的數(shù)據(jù)庫(kù)初始化腳本執(zhí)行交易回放;
[0027]業(yè)務(wù)系統(tǒng)交易重做代理單元,用以根據(jù)需要重做的交易的數(shù)據(jù)庫(kù)初始化腳本執(zhí)行交易重做;
[0028]交易重做結(jié)果比對(duì)單元,用以將重做的結(jié)果與原結(jié)果進(jìn)行比對(duì)生成數(shù)據(jù)比對(duì)報(bào)表。
[0029]本發(fā)明還涉及一種基于所述的實(shí)現(xiàn)交易回放和重做的系統(tǒng)于云平臺(tái)基于日志實(shí)現(xiàn)交易回放和重做的方法,其特征在于,所述的方法包括以下步驟:
[0030](I)所述的日志記錄推送引擎記錄業(yè)務(wù)系統(tǒng)的異常運(yùn)行日志、正常運(yùn)行日志和交易記錄日志并將記錄的日志文件推送至日志分析報(bào)送模塊;
[0031](2)所述的日志分析報(bào)送模塊接收推送的日志文件并分析得到異常運(yùn)行數(shù)據(jù)、正常運(yùn)行數(shù)據(jù)或交易進(jìn)行數(shù)據(jù)以及將異常運(yùn)行數(shù)據(jù)報(bào)送至業(yè)務(wù)系統(tǒng)管理員
[0032](3)所述的日志查看導(dǎo)出模塊根據(jù)用戶選擇的條件查詢用戶所需要的日志內(nèi)容或交易信息并將查詢結(jié)果導(dǎo)出為報(bào)表;
[0033](4)所述的交易回放和重做引擎根據(jù)用戶選擇需要回放的交易提取所述的交易進(jìn)行數(shù)據(jù)并執(zhí)行交易回放;
[0034](5)所述的交易回放和重做引擎根據(jù)用戶選擇需要重做的交易提取所述的交易進(jìn)行數(shù)據(jù)并執(zhí)行交易重做。
[0035]較佳地,所述的日志記錄推送引擎包括日志記錄單元和日志推送引擎,所述的步驟(I)包括以下步驟:
[0036](1-1)將所述的日志記錄推送引擎部署到各業(yè)務(wù)系統(tǒng)中,并初始化運(yùn)行環(huán)境;
[0037](1-2)所述的日志記錄單元中配置異常運(yùn)行日志記錄規(guī)則,修改原業(yè)務(wù)系統(tǒng)的日志記錄功能邏輯,使業(yè)務(wù)系統(tǒng)異常后的錯(cuò)誤信息按照配置的規(guī)則寫入日志文件;
[0038](1-3)所述的日志記錄單元中配置正常運(yùn)行日志記錄規(guī)則,修改原業(yè)務(wù)系統(tǒng)的日志記錄功能邏輯,使業(yè)務(wù)系統(tǒng)正常運(yùn)行的日志記錄按照配置的規(guī)則寫入日志文件;
[0039](1-4)所述的日志記錄單元中配置交易類日志記錄規(guī)則,修改原業(yè)務(wù)系統(tǒng)的日志記錄功能邏輯,使業(yè)務(wù)系統(tǒng)將交易數(shù)據(jù)按照配置的規(guī)則寫入日志文件;
[0040](1-5)所述的日志推送引擎中配置日志推送參數(shù)并將日志文件推送至日志分析報(bào)送模塊。
[0041]更佳地,所述的日志分析報(bào)送模塊包括日志收集單元、日志分析單元和異常報(bào)送單元,所述的步驟(2)包括以下步驟:
[0042](2-1)部署日志分析報(bào)送模塊并初始化運(yùn)行環(huán)境;
[0043](2-2)所述的日志收集單元接收各個(gè)所述的日志記錄推送引擎推送過(guò)來(lái)的日志內(nèi)容并存儲(chǔ);
[0044](2-3)所述的日志分析單元根據(jù)所述的日志記錄單元中的日志記錄規(guī)則分析日志內(nèi)容;
[0045](2-4)所述的日志分析單元中判斷分析到的日志的類型,如果是異常運(yùn)行日志,則繼續(xù)步驟(2-5),如果是正常運(yùn)行日志,則繼續(xù)步驟(2-6),如果是交易記錄日志,則繼續(xù)步驟(2-7);
[0046](2-5)所述的日志分析單元提取異常運(yùn)行數(shù)據(jù)并存儲(chǔ)和建立查詢索引,然后繼續(xù)步驟(2-8);
[0047](2-6)所述的日志分析單元提取正常運(yùn)行數(shù)據(jù)并存儲(chǔ)和建立查詢索引,然后繼續(xù)步驟⑶;
[0048](2-7)所述的日志分析單元提取交易進(jìn)行數(shù)據(jù)并存儲(chǔ)和建立查詢索引,然后繼續(xù)步驟⑶;
[0049](2-8)所述的異常報(bào)送單元將日志分析單元中得到的異常運(yùn)行的數(shù)據(jù)向業(yè)務(wù)系統(tǒng)管理員報(bào)送。
[0050]較佳地,所述的日志查看導(dǎo)出模塊包括日志查詢單元、交易查詢單元和結(jié)果報(bào)表導(dǎo)出單元,所述的步驟(3)包括以下內(nèi)容:
[0051](3-1)所述的日志查詢單元中根據(jù)用戶選擇的日志查詢條件和索引匹配到用戶需要的日志內(nèi)容并進(jìn)行展示;
[0052](3-2)所述的交易查詢單元中根據(jù)用戶選擇的交易查詢條件分析得到用戶需要的交易信息并進(jìn)行展示;
[0053](3-3)所述的結(jié)果報(bào)表導(dǎo)出單元中將查詢結(jié)果選擇導(dǎo)出報(bào)表文件供離線查看。
[0054]較佳地,所述的交易回放和重做引擎包括交易環(huán)境初始化數(shù)據(jù)生成單元和業(yè)務(wù)系統(tǒng)交易回放代理單元,所述的步驟(4)包括以下步驟:
[0055](4-1)部署原業(yè)務(wù)系統(tǒng)環(huán)境,部署并啟動(dòng)交易回放和重做引擎;
[0056](4-2)所述的交易環(huán)境初始化數(shù)據(jù)生成單元選擇需要回放的交易,提取所述的日志分析報(bào)送模塊中所記錄的交易進(jìn)行數(shù)據(jù);
[0057](4-3)所述的交易環(huán)境初始化數(shù)據(jù)生成單元根據(jù)提取的交易進(jìn)行數(shù)據(jù)和日志記錄單元配置的日志記錄規(guī)則,生成數(shù)據(jù)庫(kù)初始化腳本;
[0058](4-4)所述的交易環(huán)境初始化數(shù)據(jù)生成單元將數(shù)據(jù)庫(kù)初始化腳本發(fā)送到業(yè)務(wù)系統(tǒng)交易回放代理單元中;
[0059](4-5)所述業(yè)務(wù)系統(tǒng)交易回放代理單元接收數(shù)據(jù)庫(kù)初始化腳本以及當(dāng)前交易的配置數(shù)據(jù);
[0060](4-6)所述業(yè)務(wù)系統(tǒng)交易回放代理單元執(zhí)行數(shù)據(jù)庫(kù)初始化腳本以及初始化交易運(yùn)行環(huán)境;
[00