新四季網

一種日誌保存方法及裝置的製作方法

2023-08-08 16:02:16


專利名稱::一種日誌保存方法及裝置的製作方法
技術領域:
:本發明涉及日誌保存技術,尤其涉及一種日誌保存方法及裝置。
背景技術:
:日誌保存是一種用於記錄用戶在網絡中的行為的技術,採用日誌保存技術後可以方便的對用戶在網絡中的行為進行查詢、跟蹤和分析。日誌保存技術在即時通信系統、銀行系統、電話系統以及網站系統等網絡系統中都得到了廣泛的應用,例如,在電話系統中,日誌系統會記錄每次通話的雙方號碼、起始時間、產生的話費等內容;在銀行系統中,日誌系統會記錄用戶的存取款記錄;在網站系統中,日誌系統會記錄網站的訪問記錄;在即時通信系統中,日誌系統會記錄即使通信軟體的登錄記錄等。圖1所示為日誌系統的結構示意圖,由圖中可見,日誌系統主要包括日誌產生裝置和日誌保存裝置,其中日誌產生裝置用於產生日誌,可以是處理業務的終端(如ATM機),也可以是處理業務的後臺伺服器(如電話交換機、計費伺服器等);日誌保存裝置用於接收日誌產生裝置產生的日誌並對其進行保存,日誌可以保存在文件中,也可以保存在資料庫中,其中後者因為其易管理性而成為主流。現有技術的日誌系統中,日誌保存裝置可以設置在日誌產生裝置中,也可以獨立於日誌產生裝置作為一個單獨的功能實體,下面分別予以說明將日誌保存裝置設置在日誌產生裝置中即是將日誌產生裝置產生的日誌直接保存在本地磁碟中,例如,常見的門戶網站系統由一個或多個網站伺服器組成,這些網站伺服器就是日誌產生裝置。當有一個用戶訪問網站時,網站伺服器把用戶的訪問日誌記錄(如時間、IP等)直接保存在本地磁碟,以後再定時匯總這些日誌信息。這種將日誌保存裝置設置在日誌產生裝置中的日誌保存方式的實現簡單,不用在日誌產生裝置和日誌保存裝置之間設計專門的日誌發送/接收網絡協議,但是其缺點也很明顯,由於日誌產生裝置的主要使命是響應和處理用戶的業務請求,頻繁的日誌保存操作(通常是很慢的磁碟操作)會大大影響日誌產生裝置的業務處理能力。因此,這種將日誌保存裝置設置在日誌產生裝置中的日誌保存方式只適合日誌量較小,或者只需抽樣記錄部分日誌的應用環境。圖2所示為獨立設置日誌保存裝置的日誌系統的結構示意圖,由圖中可見,日誌產生裝置和日誌保存裝置為各自獨立的功能實體,日誌產生裝置和日誌保存裝置之間通過特定的網絡埠連接,一個日誌保存裝置與多個日誌產生裝置相對應,可保存多個日誌產生裝置產生的日誌。日誌產生裝置和日誌保存裝置之間需要預先設定日誌發送/接收網絡協議,日誌產生裝置負責把日誌發送到日誌保存裝置特定的網絡埠,日誌保存裝置負責監聽特定的網絡埠,一旦有日誌到達,就把日誌接收下來並將其保存到磁碟。日誌保存裝置中的日誌接收模塊將日誌保存到磁碟的方式主用有三種,第一種方式是將日誌直接插入到資料庫,由於多了一層資料庫操作,所以保存速度比較緩慢;第二種方式是將日誌直接保存到文件,這種方式的保存速度比第一種方式要快,但是文件形式的日誌不方便匯總和查詢;第三種方式是先將日誌保存到文件,再讀取文件內容,把日誌一次一行地或一次多行地插入到資料庫中,一次多行的操作方法能夠大大提高資料庫插入速度。無論採取上述三種保存方式中的哪一種,都面臨一個重要的問題,由於磁碟I/O(Input/Output,輸入/輸出)的速度趕不上網絡I/O的速度,因此在日誌量很大的情況下,會導致日誌來不及寫入磁碟而丟失。現有技術中通常採用日誌保存裝置集群的方式來解決磁碟I/O趕不上網絡I/O而丟失日誌的問題,圖3所示為採用集群式日誌保存裝置的日誌系統的結構示意圖,由圖中可見,多個日誌保存裝置組成一個集群,集群中的每個日誌保存裝置與一組日誌產生裝置相對應,不同組的日誌產生裝置把日誌發到對應的日誌保存裝置,從而減輕了單個日誌保存裝置的負擔。這種方式的優點是可以平行擴展,只要增加足夠數量的日誌保存裝置,就可以解決日誌丟失的問題。但在增加日誌保存裝置的同時日誌系統的成本也會大大提高,並且由於日誌分散保存在不同的日誌保存裝置中,不方便進行日誌的匯總和查詢。
發明內容本發明提供一種日誌保存方法及裝置,用以解決現有技術在進行日誌保存過程中日誌容易丟失、日誌入庫耗時過長的問題。本發明方法包括一種日誌保存方法,所述日誌由日誌產生裝置產生,包括步驟接收並緩存日誌產生裝置產生的日誌;讀取緩存中的日誌,將其保存在二進位形式的日誌文件中;將所述二進位形式的日誌文件轉換為文本形式的日誌文件,將該文本形式的日誌文件導入資料庫中進行保存。每間隔預定時間讀取一次緩存,將緩存中保存的日誌全部讀出。當緩存中保存的日誌所佔用的存儲空間達到預定數值時讀取一次緩存,將緩存中保存的日誌全部讀出。每個二進位形式的日誌文件中保存了設定時長內從緩存中讀出的全部日誌。每個二進位形式的日誌文件中保存了設定數量的從緩存中讀出的日誌。調用資料庫底層接口將文本形式的日誌文件批量導入資料庫中。一種日誌保存裝置,用於保存日誌產生裝置產生的日誌,包括日誌接收模塊,用於接收日誌產生裝置產生的日誌,將其保存在緩存中;日誌導出模塊,用於讀取緩存中的日誌,將其保存在二進位形式的日誌文件中;數據轉換模塊,用於將二進位形式的日誌文件轉換為文本形式的日誌文件;資料庫導入模塊,用於將文本形式的日誌文件導入資料庫中進行保存。所述緩存設置在日誌接收模塊中,或者為所述裝置中的單獨設置的模塊。所述日誌接收模塊實時接收日誌產生裝置產生的日誌。所述日誌導出模塊每間隔預定時間讀取一次緩存,將緩存中保存的日誌全部讀出。所述日誌導出模塊在緩存中保存的日誌佔用的存儲空間達到預定數值時讀取一次緩存,將緩存中保存的日誌全部讀出。所述資料庫導入模塊調用資料庫底層接口將文本形式的日誌文件批量導入資料庫中。本發明有益效果如下本發明採用緩存技術對接收到的日誌產生裝置產生的日誌進行緩存,採用批量寫的方式一次性地把從緩存中讀出的日誌全部寫到磁碟上的二進位形式的日誌文件中,將二進位形式的日誌文件轉換為文本形式的日誌文件後,利用資料庫的批量導入工具將該文本形式的日誌文件批量導入資料庫中進行保存。由於緩存的存取速度遠遠大於網絡速度,因此可以保證不會丟失日誌產生裝置產生的日誌,採用批量寫的方式一次性地把從緩存中讀出的日誌全部寫到磁碟上的二進位形式的日誌文件中,可以保證磁碟寫入的最大速度,避免了由於磁碟速度導致的日誌丟失問題;利用資料庫的批量導入工具將文本形式的日誌文件批量導入資料庫中進行保存可以縮短日誌入庫的時間,本發明完全解決了日誌入庫時間過長的問題,且硬體資源消耗很少。圖1為日誌系統的結構示意圖;圖2為獨立設置日誌保存裝置的日誌系統的結構示意圖;圖3為採用集群式日誌保存裝置的日誌系統的結構示意圖;圖4為本發明的日誌保存裝置的結構示意圖;圖5為本發明的日誌保存的流程圖。具體實施例方式本發明針對現有技術的缺陷,提出一種適用於日誌量很大的情況下的日誌保存方法及裝置,下面將結合各個附圖對本發明的主要實現原理及其具體實施方式進行詳細的闡述。圖4所示為本發明的日誌保存裝置的結構示意圖,由圖中可見,本發明的日誌保存裝置的結構主要包括日誌接收模塊,接收日誌產生裝置產生的日誌,將其保存在緩存中;日誌導出模塊,讀取緩存中的日誌,將其保存在磁碟上的二進位形式的日誌文件中;數據轉換模塊,將磁碟上的二進位形式的日誌文件轉換並保存為文本形式的日誌文件;資料庫導入模塊,將文本形式的日誌文件導入磁碟的資料庫中進行保存。上述緩存即可以設置在日誌接收模塊中,也可以單獨設置,作為日誌保存裝置中的獨立模塊。圖5所示為本發明的日誌保存的流程圖,參見圖5並結合圖4,本發明的日誌保存的主要實現過程如下步驟S10、日誌接收模塊實時監聽日誌產生裝置和日誌保存裝置之間的特定網絡埠,接收日誌產生裝置發送過來的日誌。步驟S11、日誌接收模塊將接收到的日誌保存到一塊緩存區裡,由於內存的存取速度遠遠大於網絡速度,因此可以保證不會丟失日誌;緩存區用「共享內存」技術實現,緩存區在數據結構上是一個環,假設緩存區的大小是K字節,緩存區當前的頭部是第H字節,尾部是第T字節,日誌接收模塊總是把接收到的日誌寫到緩存區的尾部,即從第(T+1)%K個字節開始寫,其中,%表示對括號裡面的數值進行取餘操作。也就是說,如果T+1=K,那麼從緩存區的第0個字節開始寫,這樣就實現了環狀緩存區;一般來講,日誌的格式都是比較固定的,在設計時通常設計成定長的二進位數據(每一條日誌佔用相同大小的存儲空間),因此,緩存區的內容是二進位數據,這主要是由於二進位數據比表示相同內容的文本數據節省存儲空間,可以減少對緩存區大小的要求。比如,電話號碼88888888,如果用文本數據表示,需要8個字節,而用二進位數據表示時,其數據形式為00000101010011000101011000111000,只需要4個字節。步驟S12、日誌導出模塊從緩存區的頭部開始讀取日誌,將其寫入磁碟內的二進位形式的日誌文件中;日誌導出模塊每間隔預定時間或者在緩存中保存的日誌佔用的存儲空間達到預定數值時讀取一次緩存區,將緩存區中保存的日誌全部讀出,日誌導出模塊採用了批量寫的方式一次性地把從緩存區中讀出的日誌全部寫到磁碟上的二進位形式的日誌文件中,批量寫技術可以保證磁碟寫入的最大速度,避免了由於磁碟速度導致的日誌丟失問題。二進位形式的日誌文件的保存方式主要有兩種,一種方式是每個二進位形式的日誌文件中保存設定時長(如24小時)內從緩存中讀出的全部日誌,即設定時長內從緩存中讀出的全部日誌形成一個二進位形式的日誌文件;另一種方式是每個二進位形式的日誌文件中保存設定數量(如1000萬條)的從緩存中讀出的日誌,即每當從緩存中讀出的日誌達到設定數量即形成一個二進位形式的日誌文件。假設緩存區的大小是K字節,當前的頭部是第H字節,尾部是第T字節,那麼需要導出的內容是1)如果H<=T,需要導出的內容是[H,T];2)如果H>T,那麼需要導出的內容是[H,K-1]和。日誌導出模塊用標準C函數庫的fwrite函數可以方便地實現批量寫,例如,fwrite(pszBuffer,iLogLen,iLogCount,pfOutputFile),表示把緩存區pszBuffe的內容寫到文件pfOutputFile中,寫iLogCount條日誌,每條日誌iLogLen個字節。步驟S13、數據轉換模塊將磁碟上的二進位形式的日誌文件轉換並保存為文本形式的日誌文件;日誌保存在二進位文件中,不方便做各種查詢、追蹤和分析,我們需要把它們放到資料庫中,以方便查詢,大部分資料庫產品(如Oracle、DB2、SQLServer、MySQL等)都提供了批量導入的工具,但這些資料庫產品只能批量導入文本文件,因此,需要數據轉換模塊將二進位形式的日誌文件轉換並保存為符合資料庫導入格式要求的文本形式的日誌文件。例如,對於論壇登錄日誌用戶ID(整數)、登錄時間(整數)、登錄IP(整數)其二進位形式的日誌內容為000001010100110001010110001110000100001100001100100011100110101111001010100001000010001000100111其轉換後的文本形式的日誌內容為88888888,2005-08-24231243,202.132.34.39步驟S14、資料庫導入模塊將文本形式的日誌文件導入磁碟的資料庫中進行保存;本發明主要用於日誌量很大的應用環境中,如每天10億條,如果用資料庫的Insert語句插入大量的日誌數據,入庫時間會非常長,約需要10個小時左右。即時使用「一次插入多行」的插入方式,也需要5個小時左右。插入慢的原因是資料庫需要頻繁對待插入的表進行加鎖/解鎖操作,需要頻繁地做表文件空間的查找/分配操作。大部分資料庫產品(如Oracle,DB2,SQLServer,MySQL)都提供了批量導入的工具,如MySQL的LoadDataInfile語句,SQLServer的BulkInsert語句等;例如,MySQL的批量導入的語句為LoadDatainfile『/tmp/source.txt』intotableTargetTableNamefieldsterminatedby『,』;SQLServer的批量導入的語句為BulkinsertTargetTableNamefrom″/tmp/source.txt″with(FIELDTERMINATOR=′,′);在本發明中,資料庫導入模塊調用資料庫提供的接口或者SQL語句,如上述LoadDataInfile語句或者BulkInsert...From語句,使用批量導入方式將文本形式的日誌文件導入資料庫中,由於這種方式直接調用資料庫底層接口對資料庫進行寫操作,因此這種方式的導入速度比Insert語句快10~1000倍,使10億條日誌僅用約30分鐘就可以全部入庫。本發明採用緩存技術、批量寫技術以及批量導入資料庫技術進行日誌的保存,解決了日誌入庫時間過長的問題,完全避免了因為磁碟速度小於網絡速度造成的日誌丟失,且硬體資源消耗很少。顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和範圍。這樣,倘若本發明的這些修改和變型屬於本發明權利要求及其等同技術的範圍之內,則本發明也意圖包含這些改動和變型在內。權利要求1.一種日誌保存方法,所述日誌由日誌產生裝置產生,其特徵在於,包括步驟接收並緩存日誌產生裝置產生的日誌;讀取緩存中的日誌,將其保存在二進位形式的日誌文件中;將所述二進位形式的日誌文件轉換為文本形式的日誌文件,將該文本形式的日誌文件導入資料庫中進行保存。2.根據權利要求1所述的日誌保存方法,其特徵在於,每間隔預定時間讀取一次緩存,將緩存中保存的日誌全部讀出。3.根據權利要求1所述的日誌保存方法,其特徵在於,當緩存中保存的日誌所佔用的存儲空間達到預定數值時讀取一次緩存,將緩存中保存的日誌全部讀出。4.根據權利要求1、2或3所述的日誌保存方法,其特徵在於,每個二進位形式的日誌文件中保存了設定時長內從緩存中讀出的全部日誌。5.根據權利要求1、2或3所述的日誌保存方法,其特徵在於,每個二進位形式的日誌文件中保存了設定數量的從緩存中讀出的日誌。6.根據權利要求1所述的日誌保存方法,其特徵在於,調用資料庫底層接口將文本形式的日誌文件批量導入資料庫中。7.一種日誌保存裝置,用於保存日誌產生裝置產生的日誌,其特徵在於,包括日誌接收模塊,用於接收日誌產生裝置產生的日誌,將其保存在緩存中;日誌導出模塊,用於讀取緩存中的日誌,將其保存在二進位形式的日誌文件中;數據轉換模塊,用於將二進位形式的日誌文件轉換為文本形式的日誌文件;資料庫導入模塊,用於將文本形式的日誌文件導入資料庫中進行保存。8.根據權利要求7所述的日誌保存裝置,其特徵在於,所述緩存設置在日誌接收模塊中,或者為所述裝置中的單獨設置的模塊。9.根據權利要求7所述的日誌保存裝置,其特徵在於,所述日誌接收模塊實時接收日誌產生裝置產生的日誌。10.根據權利要求7所述的日誌保存裝置,其特徵在於,所述日誌導出模塊每間隔預定時間讀取一次緩存,將緩存中保存的日誌全部讀出。11.根據權利要求7所述的日誌保存裝置,其特徵在於,所述日誌導出模塊在緩存中保存的日誌佔用的存儲空間達到預定數值時讀取一次緩存,將緩存中保存的日誌全部讀出。12.根據權利要求7所述的日誌保存裝置,其特徵在於,所述資料庫導入模塊調用資料庫底層接口將文本形式的日誌文件批量導入資料庫中。全文摘要本發明公開了一種日誌保存方法及裝置,用以解決現有技術在進行日誌保存過程中日誌容易丟失、日誌入庫耗時過長的問題。所述方法包括步驟A.接收並緩存日誌產生裝置產生的日誌;B.讀取緩存中的日誌,將其保存在二進位形式的日誌文件中;C.將所述二進位形式的日誌文件轉換為文本形式的日誌文件,將該文本形式的日誌文件導入資料庫中進行保存;所述裝置包括日誌接收模塊、日誌導出模塊、數據轉換模塊、資料庫導入模塊;本發明完全解決了日誌入庫時間過長的問題,且硬體資源消耗很少。文檔編號H04L12/24GK1932812SQ20051010332公開日2007年3月21日申請日期2005年9月16日優先權日2005年9月16日發明者羅道鋒,張彥玲申請人:騰訊科技(深圳)有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀