放流程,包括以下步驟:
[0119](I)所述的交易回放模塊中,需要先部署一套原交易系統(tǒng)環(huán)境,部署并啟動系統(tǒng)交易回放和重做代理模塊。
[0120](2)所述的交易環(huán)境初始化數(shù)據(jù)生成單元中,選擇需要回放的交易,提取日志分析單元中所記錄的交易發(fā)生前、交易過程中、交易發(fā)生后等環(huán)節(jié)的數(shù)據(jù)。
[0121](3)所述的交易環(huán)境初始化數(shù)據(jù)生成單元中,根據(jù)提取的數(shù)據(jù)和配置的規(guī)則,生成數(shù)據(jù)庫初始化腳本。
[0122](4)所述的交易環(huán)境初始化數(shù)據(jù)生成單元中,將數(shù)據(jù)庫初始化腳本和當(dāng)前交易的配置數(shù)據(jù)發(fā)送到業(yè)務(wù)系統(tǒng)交易回放代理單元中。
[0123](5)所述業(yè)務(wù)系統(tǒng)交易回放代理單元中,接收數(shù)據(jù)庫初始化腳本以及當(dāng)前交易的配置數(shù)據(jù)。
[0124](6)所述業(yè)務(wù)系統(tǒng)交易回放代理單元中,執(zhí)行數(shù)據(jù)庫初始化腳本以及初始化交易運行環(huán)境。
[0125](7)所述業(yè)務(wù)系統(tǒng)交易回放代理單元中,由代理自動調(diào)用該交易進行各環(huán)節(jié)的場景回放或者由用戶手動觸發(fā)該交易的交易回放。
[0126](8)所述的交易重做模塊中,需要先部署一套原交易系統(tǒng)環(huán)境,部署并啟動系統(tǒng)交易回放和重做代理模塊。
[0127]交易重做流程,包括以下步驟:
[0128](I)所述的交易環(huán)境初始化數(shù)據(jù)生成單元中,選擇需要重做的一個或一批交易,提取日志分析單元中所記錄的交易發(fā)生前、交易發(fā)生后等數(shù)據(jù)。
[0129](2)所述的交易環(huán)境初始化數(shù)據(jù)生成單元中,根據(jù)提取的數(shù)據(jù)和配置的規(guī)則,生成數(shù)據(jù)庫初始化腳本。
[0130](3)所述的交易環(huán)境初始化數(shù)據(jù)生成單元中,將數(shù)據(jù)庫初始化腳本和當(dāng)前交易的配置數(shù)據(jù)發(fā)送到業(yè)務(wù)系統(tǒng)交易重做代理單元中。
[0131](4)所述業(yè)務(wù)系統(tǒng)交易重做代理單元中,接收數(shù)據(jù)庫初始化腳本以及當(dāng)前交易的配置數(shù)據(jù)。
[0132](5)所述業(yè)務(wù)系統(tǒng)交易重做代理單元中,執(zhí)行數(shù)據(jù)庫初始化腳本以及初始化交易運行環(huán)境。
[0133](6)所述業(yè)務(wù)系統(tǒng)交易重做代理單元中,由代理自動調(diào)用執(zhí)行該交易。
[0134](7)所述業(yè)務(wù)系統(tǒng)交易重做代理單元中,代理調(diào)用執(zhí)行交易結(jié)束后,收集本次交易執(zhí)行的結(jié)果數(shù)據(jù),發(fā)送到交易重做結(jié)果比對單元。
[0135](8)所述交易重做結(jié)果比對單元中,接收業(yè)務(wù)系統(tǒng)交易重做代理單元中發(fā)送過來的本次交易執(zhí)行結(jié)果數(shù)據(jù)。
[0136](9)所述交易重做結(jié)果比對單元中,提取原交易結(jié)果數(shù)據(jù),與本次交易結(jié)果數(shù)據(jù)進行比對,得出比對結(jié)果,并統(tǒng)計出報表。
[0137](10)所述交易重做結(jié)果比對單元中,將得到的比對結(jié)果通過短信或者郵件發(fā)送給業(yè)務(wù)系統(tǒng)管理員。
[0138]在實際應(yīng)用中,本發(fā)明的云平臺基于日志實現(xiàn)交易回放和重做的方法的具體過程如下:
[0139]1、日志記錄和推送
[0140]日志記錄和推送環(huán)節(jié)是嵌入部署在各個應(yīng)用系統(tǒng)中執(zhí)行的,負(fù)責(zé)收集日志和推送到日志分析服務(wù)器。需要制定一套日志記錄的規(guī)則,然后將被嵌入系統(tǒng)的日志記錄功能按照規(guī)則進行改造。按照規(guī)則記錄的日志需要定時推送到分析服務(wù)器端,具體過程如下:
[0141](I)制定日志記錄規(guī)則,包括日志來源系統(tǒng)、日志類型、發(fā)生時間、當(dāng)前交易邏輯的上下文數(shù)據(jù)等信息;
[0142](2)改造被嵌入系統(tǒng)的日志記錄功能,按照制定的規(guī)則將需要記錄的信息記錄為日志文件;
[0143](3)創(chuàng)建日志推送定時循環(huán)任務(wù),例如每10秒鐘執(zhí)行一次。讀取被嵌入系統(tǒng)中記錄的未發(fā)送的日志,經(jīng)過壓縮后推送到日志分析服務(wù)器。已被發(fā)送過的日志應(yīng)記錄為已發(fā)送;
[0144]2、日志分析和異常報送
[0145]日志分析和異常報送是本發(fā)明的核心環(huán)節(jié),日志分析服務(wù)器需要接收來自不同系統(tǒng)推送過來的日志,進行文件分析、信息存檔、數(shù)據(jù)提取、異常報送等關(guān)鍵操作。具體過程如下:
[0146](4)設(shè)計日志接收流水表,包括日志唯一 ID、來源系統(tǒng)、發(fā)生時間、文件路徑等信息;
[0147](5)設(shè)計日志分析流水表,包括日志分析唯一 ID、分析時間、分析結(jié)果等信息,并與日志唯一 ID形成一對一關(guān)聯(lián);
[0148](6)設(shè)計異常記錄表,包括異常唯一 ID、來源系統(tǒng)、異常名稱、發(fā)生時間、異常模塊、嚴(yán)重級別、是否報送等信息,與日志分析唯一 ID形成多對一或者一對一的關(guān)聯(lián);
[0149](7)設(shè)計系統(tǒng)交易記錄表,包括交易唯一 ID、來源系統(tǒng)、交易名稱、交易環(huán)節(jié)、發(fā)生時間、交易執(zhí)行前數(shù)據(jù)上下文、交易執(zhí)行后數(shù)據(jù)上下文等信息,與日志分析唯一 ID形成一對多或者一對一關(guān)聯(lián);
[0150](8)設(shè)計交易回放重現(xiàn)記錄表,包括回放重現(xiàn)唯一 ID、交易記錄ID、執(zhí)行時間、交易執(zhí)行前數(shù)據(jù)上下文、交易執(zhí)行后數(shù)據(jù)上下文、執(zhí)行結(jié)果等信息。與交易唯一 ID形成一對多或者一對一的關(guān)聯(lián);
[0151](9)訂閱各個系統(tǒng)日志的推送,將接收到的日志文件保存到服務(wù)器下,并且將此記錄保存到日志接收流水表中;
[0152](10)創(chuàng)建日志讀取定時循環(huán)任務(wù),例如每10秒鐘執(zhí)行一次,讀取日志接收流水表中的記錄,獲取日志文件路徑,讀取到相關(guān)的日志信息;
[0153](11)使用特定的規(guī)則解析日志內(nèi)容,日志分別為如下三種類型:異常日志、正常日志和交易日志。
[0154](12)所有日志整理存放為文件,使用Lucene建立索引,供檢索使用。
[0155](13)如果是異常日志,則提取相應(yīng)異常的來源系統(tǒng)、異常名稱、發(fā)生時間、異常模塊、嚴(yán)重級別、是否報送等信息,保存到異常記錄表中。
[0156](14)如果是交易日志,則提取出來源系統(tǒng)、交易名稱、交易環(huán)節(jié)、發(fā)生時間、交易執(zhí)行前數(shù)據(jù)上下文、交易執(zhí)行后數(shù)據(jù)上下文等信息,保存到系統(tǒng)交易記錄表中。
[0157](15)創(chuàng)建異常報送定時循環(huán)任務(wù),例如每10秒鐘執(zhí)行一次,掃描異常記錄表中的數(shù)據(jù),將未報送的異常通過郵件或者短信報送到業(yè)務(wù)系統(tǒng)管理員處。
[0158]3、日志查詢和導(dǎo)出
[0159]日志的查詢和導(dǎo)出是給業(yè)務(wù)系統(tǒng)管理員提供用戶界面查詢各個系統(tǒng)日志的工具,包括按條件日志查詢、交易查詢、統(tǒng)計報表導(dǎo)出等,具體過程如下:
[0160](16)日志查詢展現(xiàn),業(yè)務(wù)系統(tǒng)管理員通過用戶界面輸入查詢條件,包括日志來源、日志類型、發(fā)生時間等維度,通過Lucene索引進行檢索查詢展現(xiàn)。
[0161](17)交易查詢展現(xiàn),業(yè)務(wù)系統(tǒng)管理員通過用戶界面輸入交易查詢條件,包括交易名稱、交易環(huán)節(jié)、發(fā)生時間等維度,通過檢索數(shù)據(jù)庫系統(tǒng)交易記錄表,將相應(yīng)交易的詳情展現(xiàn)到用戶界面。
[0162](18)報表導(dǎo)出,業(yè)務(wù)系統(tǒng)管理員查詢到相應(yīng)的數(shù)據(jù)列表后,點擊界面的導(dǎo)出,生成excel或pdf格式的報表文件,提供下載。
[0163]4、交易回放
[0164]交易回放,是通過記錄的日志中提取的數(shù)據(jù),將各個系統(tǒng)發(fā)生的交易進行回放,還原交易場景方便異常問題的定位。具體過程如下:
[0165](19)部署交易回放執(zhí)行環(huán)境。需要做交易回放的系統(tǒng),部署一套與生產(chǎn)環(huán)境相同的應(yīng)用,以便在線下回放交易;
[0166](20)部署交易執(zhí)行代理。創(chuàng)建交易執(zhí)行代理部署到交易回放執(zhí)行環(huán)境中,調(diào)用執(zhí)行系統(tǒng)中的交易;
[0167](21)生成交易回放初始化腳本。用戶在界面上選擇某一交易點擊開始回放,則查詢系統(tǒng)交易記錄表提取該交易所有環(huán)節(jié)的詳細(xì)數(shù)據(jù),根據(jù)上下文數(shù)據(jù)生成初始化環(huán)境腳本,并傳送到交易執(zhí)行代理;
[0168](22)初始化執(zhí)行環(huán)境。交易執(zhí)行代理接收到初始化腳本后,執(zhí)行該腳本進行環(huán)境的初始化;
[0169](23)執(zhí)行交易回放。交易執(zhí)行代理調(diào)用該系統(tǒng)的交易進行回放執(zhí)行。并將執(zhí)行結(jié)果保存到交易回放重現(xiàn)記錄表;
[0170]5、交易重做
[0171]交易重做,是通過記錄的日志中提取的數(shù)據(jù),將應(yīng)用系統(tǒng)發(fā)生的某一批交易使用同樣的初始數(shù)據(jù)進行重做,將重做結(jié)果與原結(jié)果進行比對,以保障交易數(shù)據(jù)的正確性,具體步驟如下:
[0172](24)部署交易重做執(zhí)行環(huán)境。需要做交易重做的系統(tǒng),部署一套與生產(chǎn)環(huán)境相同的應(yīng)用,以便在線下重做交易;
[0173](25)部署交易執(zhí)行代理。創(chuàng)建交易執(zhí)行代理部署到交易重做執(zhí)行環(huán)境中,調(diào)用執(zhí)行系統(tǒng)中的交易;
[0174](26)生成交易重做初始化腳本。用戶在界面上選擇某一批交易點擊開始重做,則查詢系統(tǒng)交易記錄表提取該交易所有環(huán)節(jié)的詳細(xì)數(shù)據(jù),根據(jù)上下文數(shù)據(jù)生成初始化環(huán)境腳本,并傳送到交易執(zhí)行代理;
[0175](27)初始化執(zhí)行環(huán)境。交易執(zhí)行代理接收到初始化腳本后,執(zhí)行該腳本進行環(huán)境的初始化;
[0176](28)執(zhí)行交易重做。交易執(zhí)行代理調(diào)用該系統(tǒng)的交易進行回放執(zhí)行。并將執(zhí)行結(jié)果保存到交易回放重現(xiàn)記錄表;
[0177](29)數(shù)據(jù)比對。提取交易重做數(shù)據(jù)結(jié)果與原交易數(shù)據(jù)結(jié)果進行比對,獲得比對結(jié)果列表,將比對結(jié)果通過郵件發(fā)送到用戶的郵箱。
[0178]采用了該發(fā)明中的云平臺基于日志實現(xiàn)交易回放和重做的系統(tǒng)及方法,首先,摒棄了傳統(tǒng)的日志記錄和查看的方式,將企業(yè)所有系統(tǒng)的日志收集歸攏到一起,提高了查看效率,方便分析和統(tǒng)計;其次,將異常報送告警功能集中到一起,使管理員能及時得到系統(tǒng)的運行狀況,并對原系統(tǒng)的影響做到最小;再次,交易的回放和重做采用了用戶界面上一鍵初始化環(huán)境和執(zhí)行的模式,比傳統(tǒng)的手工備份生產(chǎn)環(huán)境數(shù)據(jù)再恢復(fù)到驗證環(huán)境執(zhí)行再比對結(jié)果,操作簡便執(zhí)行效率上有所提高,能報送直觀的報表