欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種用于對(duì)并發(fā)生成的業(yè)務(wù)日志的處理方法和系統(tǒng)與流程

文檔序號(hào):12464072閱讀:183來(lái)源:國(guó)知局
一種用于對(duì)并發(fā)生成的業(yè)務(wù)日志的處理方法和系統(tǒng)與流程

本發(fā)明涉及Java Web領(lǐng)域,并且更具體地,涉及一種用于對(duì)并發(fā)生成的業(yè)務(wù)日志的處理方法和系統(tǒng)。



背景技術(shù):

在常規(guī)的傳統(tǒng)web項(xiàng)目中,常常需要各類(lèi)日志輸出,用以幫助管理人員定位問(wèn)題、監(jiān)控危險(xiǎn)操作等。一般日志分為兩類(lèi):

(1)系統(tǒng)日志:指系統(tǒng)級(jí)和代碼級(jí)的調(diào)試信息,用于系統(tǒng)排查錯(cuò)誤和程序調(diào)試;

(2)業(yè)務(wù)日志:指業(yè)務(wù)范疇和安全權(quán)限變更的相關(guān)操作記錄,用于監(jiān)控用戶(hù)關(guān)鍵操作等。

現(xiàn)在常用的做法一般是業(yè)務(wù)處理代碼中加入額外的日志代碼向用戶(hù)數(shù)據(jù)庫(kù)業(yè)務(wù)日志表中插入日志記錄,雖然這種方式在低并發(fā)場(chǎng)景下有編碼簡(jiǎn)單易懂,實(shí)時(shí)性高等優(yōu)點(diǎn),但是在高并發(fā)的環(huán)境下就顯得力不從心了。在日常使用場(chǎng)景中,業(yè)務(wù)日志會(huì)被高頻調(diào)用,用戶(hù)量達(dá)到一定量后,會(huì)頻繁的進(jìn)行數(shù)據(jù)庫(kù)讀寫(xiě)、請(qǐng)求數(shù)據(jù)源連接需求,對(duì)應(yīng)用程序和數(shù)據(jù)庫(kù)都造成很大負(fù)擔(dān),導(dǎo)致系統(tǒng)響應(yīng)遲緩甚至卡死,阻滯業(yè)務(wù)功能響應(yīng)、嚴(yán)重降低用戶(hù)體驗(yàn)。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明目的在于提供一種用于對(duì)并發(fā)生成的業(yè)務(wù)日志的處理方法和系統(tǒng),解決高并發(fā)下插入、查詢(xún)業(yè)務(wù)日志時(shí)引發(fā)的系統(tǒng)壓力所導(dǎo)致的系統(tǒng)響應(yīng)遲緩等問(wèn)題。

根據(jù)本發(fā)明的一方面,提供一種用于對(duì)并發(fā)生成的業(yè)務(wù)日志的處理方法,所述方法包括,

將并發(fā)生成的業(yè)務(wù)日志寫(xiě)入緩沖日志區(qū);

判斷緩沖日志區(qū)的狀態(tài)是否達(dá)到預(yù)設(shè)條件;

當(dāng)緩沖日志區(qū)的狀態(tài)達(dá)到預(yù)設(shè)條件時(shí),將緩沖日志區(qū)中的業(yè)務(wù)日志轉(zhuǎn)存到長(zhǎng)期存儲(chǔ)介質(zhì)中;以及

根據(jù)喚醒日志區(qū)中已有的查詢(xún)條件,更新喚醒日志區(qū)的查詢(xún)結(jié)果集,以實(shí)現(xiàn)針對(duì)業(yè)務(wù)日志的查詢(xún)。

優(yōu)選地,所述預(yù)設(shè)條件為:緩沖日志區(qū)內(nèi)緩存的業(yè)務(wù)日志的數(shù)據(jù)大小是否達(dá)到臨界值。

優(yōu)選地,所述預(yù)設(shè)條件為:間隔時(shí)間是否滿(mǎn)足進(jìn)行同步操作的預(yù)定時(shí)間段。

優(yōu)選地,當(dāng)間隔時(shí)間滿(mǎn)足進(jìn)行同步操作的預(yù)定時(shí)間段時(shí),若緩沖日志區(qū)內(nèi)沒(méi)有數(shù)據(jù),則中斷同步并重新開(kāi)始計(jì)時(shí)。

優(yōu)選地,通過(guò)調(diào)用插入接口將業(yè)務(wù)日志寫(xiě)入到緩沖日志區(qū)。

優(yōu)選地,所述喚醒日志區(qū)存儲(chǔ)的數(shù)據(jù)為查詢(xún)條件與查詢(xún)結(jié)果集的對(duì)應(yīng)關(guān)系,其中所述查詢(xún)條件不包括分頁(yè)條件和時(shí)間維度。

優(yōu)選地,所述針對(duì)業(yè)務(wù)日志的查詢(xún)?yōu)椋?/p>

獲得緩沖日志區(qū)中符合查詢(xún)條件的業(yè)務(wù)日志的集合R1;

查詢(xún)喚醒日志區(qū)中是否存在符合查詢(xún)條件的查詢(xún)結(jié)果集;

若喚醒日志區(qū)中存在符合查詢(xún)條件的查詢(xún)結(jié)果集,則根據(jù)查詢(xún)結(jié)果集的內(nèi)容獲得業(yè)務(wù)日志的集合R2;

若喚醒日志區(qū)中不存在符合查詢(xún)條件的查詢(xún)結(jié)果集,則在長(zhǎng)期存儲(chǔ)介質(zhì)中進(jìn)行查詢(xún)并獲取符合查詢(xún)條件的業(yè)務(wù)日志的集合R2,并更新喚醒日志區(qū)的查詢(xún)結(jié)果集;

計(jì)算R1和R2的并集R-,并對(duì)R-進(jìn)行時(shí)間維度和分頁(yè)條件的過(guò)濾,得到所有符合查詢(xún)條件的業(yè)務(wù)日志的集合R。

優(yōu)選地,所述過(guò)濾方法為迭代遍歷法。

優(yōu)選地,若喚醒日志區(qū)中不存在查詢(xún)條件,則不更新喚醒日志區(qū)的查詢(xún)結(jié)果集。

根據(jù)本發(fā)明的另一方面,提供一種用于對(duì)并發(fā)生成的業(yè)務(wù)日志的處理系統(tǒng),包括:

日志寫(xiě)入單元,用于將并發(fā)生成的業(yè)務(wù)日志寫(xiě)入緩沖日志區(qū);

狀態(tài)判斷單元,用于判斷緩沖日志區(qū)的狀態(tài)是否達(dá)到預(yù)設(shè)條件;

轉(zhuǎn)存單元,用于將緩沖日志區(qū)中的業(yè)務(wù)日志轉(zhuǎn)存到用于長(zhǎng)期存儲(chǔ)業(yè)務(wù)日志的長(zhǎng)期存儲(chǔ)介質(zhì)中;

日志查詢(xún)單元,用于根據(jù)查詢(xún)條件獲取緩沖日志區(qū)、喚醒日志區(qū)以及長(zhǎng)期存儲(chǔ)介質(zhì)中的業(yè)務(wù)日志并得到查詢(xún)結(jié)果;

其中所述喚醒日志區(qū)用于存儲(chǔ)查詢(xún)條件與查詢(xún)結(jié)果集的對(duì)應(yīng)關(guān)系。

優(yōu)選地,所述緩沖日志區(qū)以list形式進(jìn)行緩存。

優(yōu)選地,所述喚醒日志區(qū)以map形式進(jìn)行存儲(chǔ)。

優(yōu)選地,所述轉(zhuǎn)存單元在狀態(tài)判斷單元判斷緩沖日志區(qū)的狀態(tài)達(dá)到預(yù)設(shè)條件時(shí)進(jìn)行轉(zhuǎn)存。

優(yōu)選地,所述預(yù)設(shè)條件為:緩沖日志區(qū)內(nèi)緩存的業(yè)務(wù)日志的數(shù)據(jù)大小是否達(dá)到臨界值。

優(yōu)選地,所述預(yù)設(shè)條件為:間隔時(shí)間是否滿(mǎn)足進(jìn)行同步操作的預(yù)定時(shí)間段。

本發(fā)明通過(guò)緩沖日志區(qū)將插入和查詢(xún)業(yè)務(wù)日志與日志的物理存儲(chǔ)分離開(kāi)來(lái),在緩沖日志區(qū)中的插入和查詢(xún)的速度對(duì)比文件系統(tǒng)或數(shù)據(jù)庫(kù)系統(tǒng)中的存儲(chǔ)和查詢(xún)速度會(huì)有所增加,且同步到長(zhǎng)期存儲(chǔ)介質(zhì)時(shí)是集中且多線(xiàn)程的,給系統(tǒng)帶來(lái)的壓力較小,減小系統(tǒng)響應(yīng)遲緩的問(wèn)題。

附圖說(shuō)明

通過(guò)參考下面的附圖,可以更為完整地理解本發(fā)明的示例性實(shí)施方式:

圖1為根據(jù)本發(fā)明優(yōu)選實(shí)施例的處理方法的流程圖;

圖2為根據(jù)本發(fā)明優(yōu)選實(shí)施例的業(yè)務(wù)日志的查詢(xún)方法流程圖;

圖3為根據(jù)本發(fā)明優(yōu)選實(shí)施例的處理系統(tǒng)的結(jié)構(gòu)圖。

具體實(shí)施方式

現(xiàn)在參考附圖介紹本發(fā)明的示例性實(shí)施方式,然而,本發(fā)明可以用許多不同的形式來(lái)實(shí)施,并且不局限于此處描述的實(shí)施例,提供這些實(shí)施例是為了詳盡地且完全地公開(kāi)本發(fā)明,并且向所屬技術(shù)領(lǐng)域的技術(shù)人員充分傳達(dá)本發(fā)明的范圍。對(duì)于表示在附圖中的示例性實(shí)施方式中的術(shù)語(yǔ)并不是對(duì)本發(fā)明的限定。在附圖中,相同的單元/元件使用相同的附圖標(biāo)記。

除非另有說(shuō)明,此處使用的術(shù)語(yǔ)(包括科技術(shù)語(yǔ))對(duì)所屬技術(shù)領(lǐng)域的技術(shù)人員具有通常的理解含義。另外,可以理解的是,以通常使用的詞典限定的術(shù)語(yǔ),應(yīng)當(dāng)被理解為與其相關(guān)領(lǐng)域的語(yǔ)境具有一致的含義,而不應(yīng)該被理解為理想化的或過(guò)于正式的意義。

圖1為根據(jù)本發(fā)明優(yōu)選實(shí)施例的處理方法的流程圖。如圖1所示,并發(fā)生成的業(yè)務(wù)日志的處理方法100從步驟101開(kāi)始。在步驟101中,將并發(fā)生成的業(yè)務(wù)日志通過(guò)調(diào)用插入接口寫(xiě)入到緩沖日志區(qū)內(nèi)進(jìn)行緩存。優(yōu)選地,緩存日志區(qū)可以為本地內(nèi)存或獨(dú)立的緩存服務(wù)器,因?yàn)閮?nèi)存或獨(dú)立的緩存服務(wù)器進(jìn)行讀寫(xiě)的速率較快,在高并發(fā)下生成的業(yè)務(wù)日志較多時(shí),可以快速的進(jìn)行業(yè)務(wù)日志的緩存,減小因頻繁寫(xiě)入業(yè)務(wù)日志而造成的系統(tǒng)響應(yīng)緩慢等問(wèn)題。

在步驟102中,判斷緩存日志區(qū)的狀態(tài)是否達(dá)到預(yù)設(shè)條件,若緩存日志區(qū)的狀態(tài)已達(dá)到預(yù)設(shè)條件,則進(jìn)行步驟103;若緩存日志區(qū)的狀態(tài)沒(méi)有達(dá)到預(yù)設(shè)條件,則不進(jìn)行操作。優(yōu)選地,所述預(yù)設(shè)條件為,緩沖日志區(qū)內(nèi)緩存的業(yè)務(wù)日志的數(shù)據(jù)大小是否達(dá)到臨界值;也可以為間隔時(shí)間是否滿(mǎn)足進(jìn)行同步操作的預(yù)定時(shí)間段,當(dāng)間隔時(shí)間滿(mǎn)足進(jìn)行同步操作的預(yù)定時(shí)間段時(shí),若緩沖日志區(qū)內(nèi)沒(méi)有數(shù)據(jù),則中斷同步并重新計(jì)時(shí)。

在步驟103中,將緩沖日志區(qū)中的業(yè)務(wù)日志轉(zhuǎn)存到長(zhǎng)期存儲(chǔ)介質(zhì)中進(jìn)行長(zhǎng)期存儲(chǔ)。優(yōu)選地,長(zhǎng)期存儲(chǔ)介質(zhì)可以是數(shù)據(jù)庫(kù)或其他能達(dá)到同樣效果的存儲(chǔ)介質(zhì),且相對(duì)于本地內(nèi)存或獨(dú)立的緩存服務(wù)器,長(zhǎng)期存儲(chǔ)介質(zhì)的讀寫(xiě)速度較慢,但可以進(jìn)行長(zhǎng)期安全的數(shù)據(jù)存儲(chǔ)。

在步驟104中,根據(jù)喚醒日志區(qū)中已有的查詢(xún)條件,更新喚醒日志區(qū)的查詢(xún)結(jié)果集,以實(shí)現(xiàn)針對(duì)業(yè)務(wù)日志的查詢(xún)。優(yōu)選地,喚醒日志區(qū)存儲(chǔ)的數(shù)據(jù)為查詢(xún)條件與查詢(xún)結(jié)果集的對(duì)應(yīng)關(guān)系,即key-value關(guān)系對(duì),key為查詢(xún)條件,且這里的查詢(xún)條件不包括分頁(yè)條件和時(shí)間維度,value為查詢(xún)結(jié)果集,因每條業(yè)務(wù)日志都有唯一的編號(hào),value即為符合查詢(xún)條件key的所有業(yè)務(wù)日志的編號(hào)的集合。當(dāng)進(jìn)行喚醒日志區(qū)的更新時(shí),根據(jù)喚醒日志區(qū)已有的key,將符合查詢(xún)條件的新轉(zhuǎn)存到長(zhǎng)期存儲(chǔ)介質(zhì)的業(yè)務(wù)日志的編號(hào)加入到對(duì)應(yīng)的value中。

圖2為根據(jù)本發(fā)明優(yōu)選實(shí)施例的業(yè)務(wù)日志的查詢(xún)方法流程圖。如圖2所示,業(yè)務(wù)日志的查詢(xún)方法200從步驟201開(kāi)始。在步驟201中,根據(jù)查詢(xún)條件,首先獲得緩沖日志區(qū)中符合查詢(xún)條件的業(yè)務(wù)日志的集合R1。優(yōu)選地,緩沖日志區(qū)中緩存著還未轉(zhuǎn)存到長(zhǎng)期存儲(chǔ)介質(zhì)中的部分業(yè)務(wù)日志,在需要進(jìn)行業(yè)務(wù)日志的查詢(xún)時(shí),因?yàn)槭遣樵?xún)所有已經(jīng)產(chǎn)生的業(yè)務(wù)日志,緩沖日志區(qū)和長(zhǎng)期存儲(chǔ)介質(zhì)中均存有一部分日志,所以首先獲取緩沖日志區(qū)中符合查詢(xún)條件的日志。

在步驟202中,查詢(xún)喚醒日志區(qū)中是否存在符合查詢(xún)條件的查詢(xún)結(jié)果集,若存在,則進(jìn)行步驟203;若不存在,則進(jìn)行步驟204。優(yōu)選地,這里的符合查詢(xún)條件的查詢(xún)結(jié)果集,是指喚醒日志區(qū)中存在一個(gè)value,其對(duì)應(yīng)的key與本次的查詢(xún)條件完全一致,例如本次的查詢(xún)條件為“操作人為小明的高危操作”,若喚醒日志區(qū)中存在一個(gè)key為“操作人為小明的高危操作”,則將所述key對(duì)應(yīng)的value中的值所對(duì)應(yīng)的業(yè)務(wù)日志返回作為本次查詢(xún)的結(jié)果R2。

當(dāng)喚醒日志區(qū)中存在符合查詢(xún)條件的查詢(xún)結(jié)果集,則進(jìn)行步驟203。在步驟203中,將喚醒日志區(qū)中符合查詢(xún)條件的查詢(xún)結(jié)果集返回作為R2。優(yōu)選地,在將業(yè)務(wù)日志從緩沖日志區(qū)轉(zhuǎn)存至長(zhǎng)期存儲(chǔ)介質(zhì)中時(shí),同步進(jìn)行了喚醒日志區(qū)的更新操作,若喚醒日志區(qū)中存在一個(gè)key與本次查詢(xún)條件一致,則其對(duì)應(yīng)的value的值所對(duì)應(yīng)的業(yè)務(wù)日志的集合一定能代表長(zhǎng)期存儲(chǔ)介質(zhì)中所有符合查詢(xún)條件的業(yè)務(wù)日志的集合,即集合R2。

當(dāng)喚醒日志區(qū)中不存在符合查詢(xún)條件的查詢(xún)結(jié)果集,則進(jìn)行步驟204。在步驟204中,喚醒日志區(qū)中不存在符合查詢(xún)條件的查詢(xún)結(jié)果集,則在長(zhǎng)期存儲(chǔ)介質(zhì)中查詢(xún)符合條件的業(yè)務(wù)日志,并獲取查詢(xún)結(jié)果的集合R2。優(yōu)選地,長(zhǎng)期存儲(chǔ)介質(zhì)因存儲(chǔ)量大、讀寫(xiě)速度相對(duì)較慢等原因,只在喚醒日志區(qū)中不存在符合查詢(xún)條件的查詢(xún)結(jié)果集時(shí),對(duì)長(zhǎng)期存儲(chǔ)介質(zhì)中存儲(chǔ)的業(yè)務(wù)日志進(jìn)行查詢(xún)。

當(dāng)步驟204執(zhí)行完畢時(shí),執(zhí)行步驟205。根據(jù)長(zhǎng)期存儲(chǔ)介質(zhì)中符合查詢(xún)條件的業(yè)務(wù)日志的集合更新喚醒日志區(qū)的數(shù)據(jù),增加新的條目保存以本次查詢(xún)條件為key,以長(zhǎng)期存儲(chǔ)介質(zhì)中的查詢(xún)結(jié)果為value的對(duì)應(yīng)關(guān)系,以便下次查詢(xún)時(shí)直接應(yīng)用。

當(dāng)步驟203或205執(zhí)行完畢后,執(zhí)行步驟206。在步驟206中,計(jì)算R1和R2的并集R-,并對(duì)R-進(jìn)行時(shí)間維度和分頁(yè)條件的過(guò)濾,得到所有符合查詢(xún)條件的業(yè)務(wù)日志的集合R。優(yōu)選地,所述過(guò)濾方法為迭代遍歷法,在進(jìn)行過(guò)濾時(shí)以先進(jìn)行時(shí)間維度后分頁(yè)條件的順序進(jìn)行。

圖3為根據(jù)本發(fā)明優(yōu)選實(shí)施例的處理系統(tǒng)的結(jié)構(gòu)圖。如圖3所示,處理系統(tǒng)300由日志寫(xiě)入單元301、狀態(tài)判斷單元302、轉(zhuǎn)存單元303、日志查詢(xún)單元304、緩沖日志區(qū)305、喚醒日志區(qū)306以及長(zhǎng)期存儲(chǔ)介質(zhì)307組成。

優(yōu)選地,日志寫(xiě)入單元301用于將并發(fā)生成的業(yè)務(wù)日志寫(xiě)入緩沖日志區(qū)305,故日志寫(xiě)入單元可以為Java Web中插入接口,也可以為能達(dá)到寫(xiě)入效果的其他接口。

優(yōu)選地,狀態(tài)判斷單元302用于判斷緩沖日志區(qū)305的狀態(tài)是否達(dá)到預(yù)設(shè)條件,當(dāng)緩沖日志區(qū)305的狀態(tài)達(dá)到預(yù)設(shè)條件時(shí),轉(zhuǎn)存單元303將緩沖日志區(qū)305內(nèi)的所有數(shù)據(jù)轉(zhuǎn)存至長(zhǎng)期存儲(chǔ)介質(zhì)307中。優(yōu)選地,所述預(yù)設(shè)條件為,緩沖日志區(qū)305內(nèi)緩存的業(yè)務(wù)日志的數(shù)據(jù)大小是否達(dá)到臨界值;也可以為間隔時(shí)間是否滿(mǎn)足進(jìn)行同步操作的預(yù)定時(shí)間段,當(dāng)間隔時(shí)間滿(mǎn)足進(jìn)行同步操作的預(yù)定時(shí)間段時(shí),若緩沖日志區(qū)305內(nèi)沒(méi)有數(shù)據(jù),則中斷轉(zhuǎn)存操作并重新計(jì)時(shí)。

優(yōu)選地,日志查詢(xún)單元304主要用于查詢(xún)過(guò)程中獲取緩沖日志區(qū)305、喚醒日志區(qū)306以及長(zhǎng)期存儲(chǔ)介質(zhì)307中的業(yè)務(wù)日志。在獲取過(guò)程中,首先獲取緩沖日志區(qū)305中符合查詢(xún)條件的業(yè)務(wù)日志的集合R1,其次判斷喚醒日志區(qū)306中是否存在符合查詢(xún)條件的查詢(xún)結(jié)果集,若存在,則獲取所述查詢(xún)結(jié)果集對(duì)應(yīng)業(yè)務(wù)日志集合R2,若不存在,則獲取長(zhǎng)期存儲(chǔ)介質(zhì)307中符合查詢(xún)條件的業(yè)務(wù)日志集合R2。最后計(jì)算R1和R2的并集,并進(jìn)行時(shí)間維度和分頁(yè)條件的過(guò)濾,得到所有符合查詢(xún)條件的業(yè)務(wù)日志的集合R。

優(yōu)選地,所述緩沖日志區(qū)305以list形式進(jìn)行業(yè)務(wù)日志的緩存,所述喚醒日志區(qū)以map形式進(jìn)行key-value關(guān)系對(duì)的存儲(chǔ)。

已經(jīng)通過(guò)參考少量實(shí)施方式描述了本發(fā)明。然而,本領(lǐng)域技術(shù)人員所公知的,正如附帶的專(zhuān)利權(quán)利要求所限定的,除了本發(fā)明以上公開(kāi)的其他的實(shí)施例等同地落在本發(fā)明的范圍內(nèi)。

通常地,在權(quán)利要求中使用的所有術(shù)語(yǔ)都根據(jù)他們?cè)诩夹g(shù)領(lǐng)域的通常含義被解釋?zhuān)窃谄渲斜涣硗饷鞔_地定義。所有的參考“一個(gè)/所述/該[裝置、組件等]”都被開(kāi)放地解釋為所述裝置、組件等中的至少一個(gè)實(shí)例,除非另外明確地說(shuō)明。這里公開(kāi)的任何方法的步驟都沒(méi)必要以公開(kāi)的準(zhǔn)確的順序運(yùn)行,除非明確地說(shuō)明。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
兴义市| 彝良县| 青州市| 绥芬河市| 改则县| 噶尔县| 呼玛县| 平昌县| 乌拉特前旗| 石台县| 七台河市| 怀宁县| 双牌县| 巴南区| 宜阳县| 青田县| 江都市| 邯郸县| 延庆县| 澄迈县| 海城市| 五家渠市| 和田县| 桦川县| 广西| 讷河市| 湘乡市| 元朗区| 碌曲县| 亚东县| 兴文县| 拜城县| 漯河市| 新闻| 宁强县| 渝北区| 通州市| 江津市| 汉源县| 南雄市| 方城县|