1.基于http服務(wù)切面與日志系統(tǒng)的異步數(shù)據(jù)同步方法,其特征在于包括如下步驟:
攔截客戶端的接口請求,并記錄接口訪問日志,
將所述訪問日志作為請求事件源傳遞至消息隊列,解析所述消息隊列中的訪問日志,
解析后還原請求事件的入?yún)⒑?或出參,將數(shù)據(jù)轉(zhuǎn)換后進行新老系統(tǒng)的數(shù)據(jù)映射后再寫入新數(shù)據(jù)庫。
2.根據(jù)權(quán)利要求1所述的異步數(shù)據(jù)同步方法,其特征在于,攔截客戶端的接口具體包括:采用切面技術(shù)來攔截接口請求。
3.根據(jù)權(quán)利要求2所述的異步數(shù)據(jù)同步方法,其特征在于,所述切面技術(shù)采用:jaxrs的請求過濾器、servlet的過濾器、spring mvc的攔截器中的一種或者多種,用以提取所述接口請求中的入?yún)?、出參、url以及method的數(shù)據(jù)。
4.根據(jù)權(quán)利要求1所述的異步數(shù)據(jù)同步方法,其特征在于,將所述訪問日志作為請求事件源傳遞至消息隊列的方法具體為:
采用log4j2的kafka組件直接將日志寫入到kafka隊列。
5.根據(jù)權(quán)利要求4所述的異步數(shù)據(jù)同步方法,其特征在于,將所述訪問日志作為請求事件源傳遞至消息隊列的方法具體為:通過flume或者fluent的采集工具將數(shù)據(jù)提交到kafka隊列。
6.根據(jù)權(quán)利要求1所述的異步數(shù)據(jù)同步方法,其特征在于,解析所述消息隊列中的訪問日志的方法至少包括:一處理程序,用以將正確的消息保存到本地庫中,再去做同步,如果處理失敗則自動重試,所述自動重試的次數(shù)不大于3次,若大于3次則進行人工處理。
7.根據(jù)權(quán)利要求1所述的異步數(shù)據(jù)同步方法,其特征在于,還包括:在寫方法上加注釋,再編寫處理程序。
8.根據(jù)權(quán)利要求4所述的異步數(shù)據(jù)同步方法,其特征在于,將日志寫入老系統(tǒng)的數(shù)據(jù)庫,然后配置flume或者fluent來sink日志到kafka隊列。
9.根據(jù)權(quán)利要求1所述的異步數(shù)據(jù)同步方法,其特征在于,還包括:采用hibernate、mybatis或者任一db框架來進行新老數(shù)據(jù)庫中數(shù)據(jù)的提取和寫入。
10.基于http服務(wù)切面與日志系統(tǒng)的異步數(shù)據(jù)同步系統(tǒng),其特征在于,包括:
一攔截單元,用以攔截客戶端的接口請求,并記錄接口訪問日志,
一隊列單元,用以將所述訪問日志作為請求事件源傳遞至消息隊列,解析所述消息隊列中的訪問日志,
一處理程序,用以解析后還原請求事件的入?yún)⒑?或出參,將數(shù)據(jù)轉(zhuǎn)換后進行新老系統(tǒng)的數(shù)據(jù)映射后再寫入新數(shù)據(jù)庫。