專利名稱:系統(tǒng)關(guān)鍵數(shù)據(jù)保存方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于互聯(lián)網(wǎng)應(yīng)用領(lǐng)域,特別是一種系統(tǒng)關(guān)鍵數(shù)據(jù)保存方法及裝置。
背景技術(shù):
對(duì)于當(dāng)前每一個(gè)中大型的TOB應(yīng)用,系統(tǒng)中有些關(guān)鍵數(shù)據(jù)需要及時(shí)、穩(wěn)定、安全的 保存到數(shù)據(jù)庫(kù)中,系統(tǒng)關(guān)鍵數(shù)據(jù)包括用戶的訂購(gòu)信息、用戶的訪問注冊(cè)信息等。在系統(tǒng)資源受限的情況下,現(xiàn)有技術(shù)中保存系統(tǒng)關(guān)鍵數(shù)據(jù)有兩種方式方式一、直 接將數(shù)據(jù)通過后臺(tái)進(jìn)程保存到數(shù)據(jù)庫(kù)中;方式二、直接將數(shù)據(jù)保存到文件中,再通過后臺(tái)進(jìn) 程把日志文件中的數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中。但是,方式一要求服務(wù)器運(yùn)行良好、穩(wěn)定,不會(huì)出現(xiàn)服務(wù)器重啟、斷電的特殊情況, 而且服務(wù)器需要內(nèi)存大,便于保存數(shù)據(jù),否則,內(nèi)存中的數(shù)據(jù)將全部丟失,重要數(shù)據(jù)將丟失 殆盡,損失不可預(yù)見。因此,方式一存在的問題在于很難保證服務(wù)器運(yùn)行良好、不出現(xiàn)服務(wù) 器重啟等情況,存在數(shù)據(jù)丟失的風(fēng)險(xiǎn)。方式二由于存在讀寫磁盤的操作存在,數(shù)據(jù)丟失的可能性比較小。但方式二存在 的問題在于在服務(wù)器資源緊缺的時(shí)候,服務(wù)器性能必將受到大的影響,影響現(xiàn)有業(yè)務(wù)的正 常運(yùn)行,對(duì)于部分要快速響應(yīng)的服務(wù)來說,方式二不能滿足系統(tǒng)的要求。因此,需要提供一種新的系統(tǒng)關(guān)鍵數(shù)據(jù)保存方法及裝置以解決上述的問題。
發(fā)明內(nèi)容
本發(fā)明提供一種系統(tǒng)關(guān)鍵數(shù)據(jù)保存方法及裝置,以解決現(xiàn)有技術(shù)系統(tǒng)關(guān)鍵數(shù)據(jù)保 存方式單一,不能根據(jù)服務(wù)器的情況對(duì)系統(tǒng)關(guān)鍵數(shù)據(jù)進(jìn)行安全保存問題。本發(fā)明的目的是通過以下技術(shù)方案來實(shí)現(xiàn)的一種系統(tǒng)關(guān)鍵數(shù)據(jù)保存方法,所述 方法包括以下步驟a.設(shè)置日志處理類型參數(shù);b.獲取數(shù)據(jù)來源;c.判斷設(shè)置的日志處理 類型參數(shù),并根據(jù)設(shè)置的日志處理類型參數(shù)對(duì)獲取的數(shù)據(jù)進(jìn)行保存。本發(fā)明采取的技術(shù)方案還包括在所述步驟a中,所述日志處理類型參數(shù)包括 1-內(nèi)存寫數(shù)據(jù)庫(kù)方式,2—日志寫數(shù)據(jù)庫(kù)方式,3—前兩者合并在一起寫數(shù)據(jù)庫(kù)方式。本發(fā)明采取的技術(shù)方案還包括所述日志處理類型參數(shù)為3時(shí),所述步驟a還包 括設(shè)置日志處理閥值。本發(fā)明采取的技術(shù)方案還包括所述日志處理類型參數(shù)為1時(shí),所述步驟c還包 括采用內(nèi)存寫數(shù)據(jù)庫(kù)方式直接寫數(shù)據(jù)庫(kù)。本發(fā)明采取的技術(shù)方案還包括所述日志處理類型參數(shù)為2時(shí),所述步驟c還包 括采用日志寫數(shù)據(jù)庫(kù)方式處理數(shù)據(jù)。本發(fā)明采取的技術(shù)方案還包括所述日志處理類型參數(shù)為3時(shí),所述步驟c還包 括判斷訪問數(shù)據(jù)的條數(shù)是否小于日志處理閥值,如果小于日志處理閥值則直接將數(shù)據(jù)保 存到數(shù)據(jù)庫(kù)中,否則,啟動(dòng)寫日志線程將訪問數(shù)據(jù)寫入到日志文件,再由定時(shí)掃描處理日志 進(jìn)程掃描產(chǎn)生的日志,并將日志數(shù)據(jù)安全的寫入到數(shù)據(jù)庫(kù)中。
本發(fā)明采取的另一技術(shù)方案為一種系統(tǒng)關(guān)鍵數(shù)據(jù)保存裝置,包括日志處理類 型參數(shù)設(shè)置模塊,用于設(shè)置日志處理類型參數(shù);數(shù)據(jù)獲取模塊,用于獲取數(shù)據(jù)來源;第一判 斷模塊,用于接收攔截請(qǐng)求,并判斷所述日志處理類型參數(shù)設(shè)置模塊設(shè)置的日志處理類型 參數(shù);數(shù)據(jù)保存模塊,用于根據(jù)所述第一判斷模塊判斷的日志處理類型參數(shù)對(duì)數(shù)據(jù)進(jìn)行保存。本發(fā)明采取的技術(shù)方案還包括所述日志處理類型參數(shù)設(shè)置模塊設(shè)置的日志處理 類型參數(shù)包括1一內(nèi)存寫數(shù)據(jù)庫(kù)方式,2--日志寫數(shù)據(jù)庫(kù)方式,3—前兩者合并在一起寫數(shù) 據(jù)庫(kù)方式。本發(fā)明采取的技術(shù)方案還包括所述數(shù)據(jù)保存模塊包括內(nèi)存寫模塊,用于所述 第一判斷模塊判斷的日志處理類型參數(shù)為1時(shí)采用內(nèi)存寫數(shù)據(jù)庫(kù)方式直接寫數(shù)據(jù)庫(kù);日志 寫模塊,用于所述第一判斷模塊判斷的日志處理類型參數(shù)為2時(shí)采用日志寫數(shù)據(jù)庫(kù)方式處 理數(shù)據(jù)。本發(fā)明采取的技術(shù)方案還包括所述系統(tǒng)關(guān)鍵數(shù)據(jù)保存裝置還包括日志處理閥 值設(shè)置模塊,用于設(shè)置日志處理閥值;第二判斷模塊,用于所述第一判斷模塊判斷的日志處 理類型參數(shù)為3時(shí)判斷訪問數(shù)據(jù)的條數(shù)是否小于日志處理閥值設(shè)置模塊設(shè)置日志處理閥 值;當(dāng)訪問數(shù)據(jù)的條數(shù)小于日志處理閥值設(shè)置模塊設(shè)置日志處理閥值,所述內(nèi)存寫模塊直 接將數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中,否則,所述日志寫模塊啟動(dòng)寫日志線程將訪問數(shù)據(jù)寫入到日志 文件,再由定時(shí)掃描處理日志進(jìn)程掃描產(chǎn)生的日志,并將日志數(shù)據(jù)寫入到數(shù)據(jù)庫(kù)中。采用本發(fā)明的技術(shù)方案以后,可以根據(jù)不同的需求調(diào)節(jié)關(guān)鍵數(shù)據(jù)的處理方式,在 服務(wù)器性能和穩(wěn)定之間達(dá)到平衡,另外,在服務(wù)器資源允許的情況下可以將日志處理線程 調(diào)配到其他的物理服務(wù)器,以免對(duì)現(xiàn)有服務(wù)器的其他應(yīng)用產(chǎn)生影響。
圖1為本發(fā)明實(shí)施例的系統(tǒng)關(guān)鍵數(shù)據(jù)保存方法的流程圖。圖2為本發(fā)明實(shí)施例的系統(tǒng)關(guān)鍵數(shù)據(jù)保存裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì) 本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并 不用于限定本發(fā)明。本發(fā)明的構(gòu)思在于,設(shè)置不同的日志處理類型參數(shù),將內(nèi)存些數(shù)據(jù)庫(kù)與日志寫數(shù) 據(jù)庫(kù)方式結(jié)合起來,均衡服務(wù)器的壓力,又可以提高服務(wù)器上web應(yīng)用的速度。請(qǐng)參閱圖1,本發(fā)明實(shí)施例的系統(tǒng)關(guān)鍵數(shù)據(jù)保存方法包括以下步驟步驟10 設(shè)置日志處理類型參數(shù)和/或日志處理閥值;在該步驟中,日志處理類型參數(shù)包括1一內(nèi)存寫數(shù)據(jù)庫(kù)方式,2—日志寫數(shù)據(jù)庫(kù) 方式,3—前兩者合并在一起寫數(shù)據(jù)庫(kù)方式。其中,日志處理類型參數(shù)可以根據(jù)應(yīng)用的類型或者根據(jù)用戶訪問時(shí)間區(qū)間來設(shè) 置,不同類型的應(yīng)用日志根據(jù)其不同的需求可以設(shè)置不同的日志處理類型參數(shù),還可以根 據(jù)用戶訪問的時(shí)間是高峰期或者是閑置期來設(shè)置不同的日志處理類型參數(shù),或者根據(jù)上述兩者的結(jié)合來設(shè)置不同的日志處理類型參數(shù)。日志處理閥值在日志處理類型參數(shù)為3時(shí)有效,該值的大小由具體的環(huán)境和應(yīng)用 來定義其大小,如服務(wù)器應(yīng)用對(duì)現(xiàn)有服務(wù)器內(nèi)存不會(huì)造成壓力,不會(huì)造成服務(wù)器崩潰、重啟 等特殊情況的發(fā)生的日志存儲(chǔ)條數(shù)就是該應(yīng)用的日志處理閥值。步驟20 獲取數(shù)據(jù)來源;在本發(fā)明實(shí)施例中,數(shù)據(jù)來源是用戶訪問的數(shù)據(jù),在不同的系統(tǒng)中可以是不同的 重要數(shù)據(jù),為了不影響現(xiàn)有業(yè)務(wù)的速度,單獨(dú)開辟一個(gè)進(jìn)程獲取處理數(shù)據(jù)。步驟30 日志處理進(jìn)程獲取到攔截請(qǐng)求,判斷設(shè)置的日志處理類型參數(shù),如果日 志處理類型參數(shù)為1,則進(jìn)入步驟40 ;如果日志處理類型參數(shù)為2,則進(jìn)入步驟50 ;日志處 理類型參數(shù)為3,則進(jìn)入步驟60 ;步驟40 采用內(nèi)存寫數(shù)據(jù)庫(kù)方式直接寫數(shù)據(jù)庫(kù)。其中,在該方式下,需要服務(wù)器的內(nèi)存特別大,該服務(wù)器運(yùn)行非常穩(wěn)定,對(duì)該關(guān)鍵 數(shù)據(jù)要求快速處理,因此日志處理類型定為方式1,直接寫數(shù)據(jù)庫(kù),以提高性能。步驟50 采用日志寫數(shù)據(jù)庫(kù)方式處理數(shù)據(jù)。其中,在該方式下,服務(wù)器內(nèi)存相對(duì)較小,而對(duì)關(guān)鍵數(shù)據(jù)要求及其的穩(wěn)定,不允許 丟失,而關(guān)鍵數(shù)據(jù)的處理速度是其次,將處理類型定位方式2,以達(dá)到數(shù)據(jù)穩(wěn)定處理的目的。步驟60 判斷訪問數(shù)據(jù)的條數(shù)是否小于日志處理閥值,如果小于日志處理閥值則 進(jìn)入步驟70 ;否則進(jìn)入步驟80。步驟70 直接將數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中。其中,在該方式下,不用寫文件,以提高速度。步驟80 啟動(dòng)寫日志線程將訪問數(shù)據(jù)寫入到日志文件,減少內(nèi)存中日志的條數(shù), 釋放內(nèi)存,確保內(nèi)存中日志的條數(shù)小于日志處理閥值,再由定時(shí)掃描處理日志進(jìn)程掃描產(chǎn) 生的日志,并將日志數(shù)據(jù)安全的寫入到數(shù)據(jù)庫(kù)中。在該方式下,當(dāng)服務(wù)器訪問日志條數(shù)大于日志處理閥值,此時(shí)可能會(huì)造成服務(wù)器 重啟、崩潰等特殊情況產(chǎn)生,需要馬上釋放內(nèi)存來確保web應(yīng)用的速度和服務(wù)器的穩(wěn)定。請(qǐng)參閱圖2,本發(fā)明實(shí)施例的系統(tǒng)關(guān)鍵數(shù)據(jù)保存裝置包括
日志處理類型參數(shù)設(shè)置模塊,用于設(shè)置日志處理類型參數(shù)。其中,日志處理類型參數(shù)包括1一內(nèi)存寫數(shù)據(jù)庫(kù)方式,2—日志寫數(shù)據(jù)庫(kù)方式, 3-前兩者合并在一起寫數(shù)據(jù)庫(kù)方式。日志處理類型參數(shù)可以根據(jù)應(yīng)用的類型或者根據(jù)用戶訪問時(shí)間區(qū)間來設(shè)置,不同 類型的應(yīng)用日志根據(jù)其不同的需求可以設(shè)置不同的日志處理類型參數(shù),還可以根據(jù)用戶訪 問的時(shí)間是高峰期或者是閑置期來設(shè)置不同的日志處理類型參數(shù),或者根據(jù)上述兩者的結(jié) 合來設(shè)置不同的日志處理類型參數(shù)。日志處理閥值設(shè)置模塊,用于設(shè)置日志處理閥值,其中,該值的大小由具體的環(huán)境 和應(yīng)用來定義其大小,如服務(wù)器應(yīng)用對(duì)現(xiàn)有服務(wù)器內(nèi)存不會(huì)造成壓力,不會(huì)造成服務(wù)器崩 潰、重啟等特殊情況的發(fā)生的日志存儲(chǔ)條數(shù)就是該應(yīng)用的日志處理閥值。數(shù)據(jù)獲取模塊,用于獲取數(shù)據(jù)來源。在本發(fā)明實(shí)施例中,數(shù)據(jù)來源是用戶訪問的數(shù)據(jù),在不同的系統(tǒng)中可以是不同的 重要數(shù)據(jù),為了不影響現(xiàn)有業(yè)務(wù)的速度,數(shù)據(jù)獲取模塊還單獨(dú)開辟一個(gè)進(jìn)程獲取處理數(shù)據(jù)。
第一判斷模塊,用于接收攔截請(qǐng)求,并判斷設(shè)置的日志處理類型參數(shù)。內(nèi)存寫模塊,用于將數(shù)據(jù)獲取模塊獲取的數(shù)據(jù)來源采用內(nèi)存寫數(shù)據(jù)庫(kù)方式直接寫 數(shù)據(jù)庫(kù)。日志寫模塊,用于將數(shù)據(jù)獲取模塊獲取的數(shù)據(jù)來源采用日志寫數(shù)據(jù)庫(kù)方式處理數(shù) 據(jù)。其中,當(dāng)所述第一判斷模塊判斷設(shè)置的日志處理類型參數(shù)為1時(shí),所述內(nèi)存寫模 塊采用內(nèi)存寫數(shù)據(jù)庫(kù)方式直接寫數(shù)據(jù)庫(kù),所述第一判斷模塊判斷設(shè)置的日志處理類型參數(shù) 為2時(shí),所述日志寫模塊采用日志寫數(shù)據(jù)庫(kù)方式處理數(shù)據(jù),所述第一判斷模塊判斷設(shè)置的 日志處理類型參數(shù)為3時(shí),由第二判斷模塊進(jìn)行進(jìn)一步的判斷。第二判斷模塊,用于判斷訪問數(shù)據(jù)的條數(shù)是否小于日志處理閥值設(shè)置模塊設(shè)置日 志處理閥值,如果訪問數(shù)據(jù)的條數(shù)小于日志處理閥值設(shè)置模塊設(shè)置日志處理閥值,所述內(nèi) 存寫模塊直接將數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中,否則,日志寫模塊啟動(dòng)寫日志線程將訪問數(shù)據(jù)寫入 到日志文件,再由定時(shí)掃描處理日志進(jìn)程掃描產(chǎn)生的日志,并將日志數(shù)據(jù)安全的寫入到數(shù) 據(jù)庫(kù)中。采用本發(fā)明的技術(shù)方案以后,可以根據(jù)不同的需求調(diào)節(jié)關(guān)鍵數(shù)據(jù)的處理方式,在 服務(wù)器性能和穩(wěn)定之間達(dá)到平衡,另外,在服務(wù)器資源允許的情況下可以將日志處理線程 調(diào)配到其他的物理服務(wù)器,以免對(duì)現(xiàn)有服務(wù)器的其他應(yīng)用產(chǎn)生影響。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
一種系統(tǒng)關(guān)鍵數(shù)據(jù)保存方法,其特征在于,所述方法包括以下步驟a.設(shè)置日志處理類型參數(shù);b.獲取數(shù)據(jù)來源;c.判斷設(shè)置的日志處理類型參數(shù),并根據(jù)設(shè)置的日志處理類型參數(shù)對(duì)獲取的數(shù)據(jù)進(jìn)行保存。
2.如權(quán)利要求1所述的系統(tǒng)關(guān)鍵數(shù)據(jù)保存方法,其特征在于在所述步驟a中,所述日 志處理類型參數(shù)包括1一內(nèi)存寫數(shù)據(jù)庫(kù)方式,2—日志寫數(shù)據(jù)庫(kù)方式,3—前兩者合并在一 起寫數(shù)據(jù)庫(kù)方式。
3.如權(quán)利要求2所述的系統(tǒng)關(guān)鍵數(shù)據(jù)保存方法,其特征在于,所述日志處理類型參數(shù) 為3時(shí),所述步驟a還包括設(shè)置日志處理閥值。
4.如權(quán)利要求2所述的系統(tǒng)關(guān)鍵數(shù)據(jù)保存方法,其特征在于,所述日志處理類型參數(shù) 為1時(shí),所述步驟c還包括采用內(nèi)存寫數(shù)據(jù)庫(kù)方式直接寫數(shù)據(jù)庫(kù)。
5.如權(quán)利要求2所述的系統(tǒng)關(guān)鍵數(shù)據(jù)保存方法,其特征在于,所述日志處理類型參數(shù) 為2時(shí),所述步驟c還包括采用日志寫數(shù)據(jù)庫(kù)方式處理數(shù)據(jù)。
6.如權(quán)利要求3所述的系統(tǒng)關(guān)鍵數(shù)據(jù)保存方法,其特征在于,所述日志處理類型參數(shù) 為3時(shí),所述步驟c還包括判斷訪問數(shù)據(jù)的條數(shù)是否小于日志處理閥值,如果小于日志處 理閥值則直接將數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中,否則,啟動(dòng)寫日志線程將訪問數(shù)據(jù)寫入到日志文件, 再由定時(shí)掃描處理日志進(jìn)程掃描產(chǎn)生的日志,并將日志數(shù)據(jù)安全的寫入到數(shù)據(jù)庫(kù)中。
7.一種系統(tǒng)關(guān)鍵數(shù)據(jù)保存裝置,其特征在于,包括日志處理類型參數(shù)設(shè)置模塊,用于設(shè)置日志處理類型參數(shù); 數(shù)據(jù)獲取模塊,用于獲取數(shù)據(jù)來源;第一判斷模塊,用于接收攔截請(qǐng)求,并判斷所述日志處理類型參數(shù)設(shè)置模塊設(shè)置的日 志處理類型參數(shù);數(shù)據(jù)保存模塊,用于根據(jù)所述第一判斷模塊判斷的日志處理類型參數(shù)對(duì)數(shù)據(jù)進(jìn)行保存。
8.如權(quán)利要求7所述的系統(tǒng)關(guān)鍵數(shù)據(jù)保存裝置,其特征在于,所述日志處理類型參數(shù) 設(shè)置模塊設(shè)置的日志處理類型參數(shù)包括1一內(nèi)存寫數(shù)據(jù)庫(kù)方式,2—日志寫數(shù)據(jù)庫(kù)方式, 3-前兩者合并在一起寫數(shù)據(jù)庫(kù)方式。
9.如權(quán)利要求8所述的系統(tǒng)關(guān)鍵數(shù)據(jù)保存裝置,其特征在于,所述數(shù)據(jù)保存模塊包括 內(nèi)存寫模塊,用于所述第一判斷模塊判斷的日志處理類型參數(shù)為1時(shí)采用內(nèi)存寫數(shù)據(jù)庫(kù)方式直接寫數(shù)據(jù)庫(kù);日志寫模塊,用于所述第一判斷模塊判斷的日志處理類型參數(shù)為2時(shí)采用日志寫數(shù)據(jù) 庫(kù)方式處理數(shù)據(jù)。
10.如權(quán)利要求9所述的系統(tǒng)關(guān)鍵數(shù)據(jù)保存裝置,其特征在于,所述系統(tǒng)關(guān)鍵數(shù)據(jù)保存 裝置還包括日志處理閥值設(shè)置模塊,用于設(shè)置日志處理閥值;第二判斷模塊,用于所述第一判斷模塊判斷的日志處理類型參數(shù)為3時(shí)判斷訪問數(shù)據(jù) 的條數(shù)是否小于日志處理閥值設(shè)置模塊設(shè)置日志處理閥值;當(dāng)訪問數(shù)據(jù)的條數(shù)小于日志處理閥值設(shè)置模塊設(shè)置日志處理閥值,所述內(nèi)存寫模塊直接將數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中,否則,所述日志寫模塊啟動(dòng)寫日志線程將訪問數(shù)據(jù)寫入到日志 文件,再由定時(shí)掃描處理日志進(jìn)程掃描產(chǎn)生的日志,并將日志數(shù)據(jù)寫入到數(shù)據(jù)庫(kù)中。
全文摘要
本發(fā)明涉及一種系統(tǒng)關(guān)鍵數(shù)保存方法及裝置。該系統(tǒng)關(guān)鍵數(shù)據(jù)保存方法包括以下步驟a.設(shè)置日志處理類型參數(shù);b.獲取數(shù)據(jù)來源;c.判斷設(shè)置的日志處理類型參數(shù),并根據(jù)設(shè)置的日志處理類型參數(shù)對(duì)獲取的數(shù)據(jù)進(jìn)行保存。采用本發(fā)明的技術(shù)方案以后,可以根據(jù)不同的需求調(diào)節(jié)關(guān)鍵數(shù)據(jù)的處理方式,在服務(wù)器性能和穩(wěn)定之間達(dá)到平衡,另外,在服務(wù)器資源允許的情況下可以將日志處理線程調(diào)配到其他的物理服務(wù)器,以免對(duì)現(xiàn)有服務(wù)器的其他應(yīng)用產(chǎn)生影響。
文檔編號(hào)H04L12/24GK101909075SQ20101020593
公開日2010年12月8日 申請(qǐng)日期2010年6月21日 優(yōu)先權(quán)日2010年6月21日
發(fā)明者伍杰 申請(qǐng)人:深圳市五巨科技有限公司