[發明專利]一種客戶端日志處理方法和裝置有效
| 申請號: | 201210059555.4 | 申請日: | 2012-03-08 |
| 公開(公告)號: | CN103309767A | 公開(公告)日: | 2013-09-18 |
| 發明(設計)人: | 張黎明 | 申請(專利權)人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | G06F11/14 | 分類號: | G06F11/14;G06F12/16 |
| 代理公司: | 北京同達信恒知識產權代理有限公司 11291 | 代理人: | 郭潤湘 |
| 地址: | 英屬開曼群島大開曼*** | 國省代碼: | 開曼群島;KY |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 客戶端 日志 處理 方法 裝置 | ||
技術領域
本申請涉及通信領域,尤其涉及一種客戶端日志處理方法和裝置。
背景技術
在現有的客戶端日志采集處理方案中,客戶端會在退出時,會將已采集到的日志壓縮成數據包,例如壓縮為RAR、zip等常見格式的數據包,并將該數據包發送給服務器。服務器根據相關協議對接收到的數據包進行合法性驗證,在驗證通過后將該數據包解壓縮,將解壓縮后獲得的日志存放在日志文件中,并可以通過后臺程序將日志傳輸至分布式系統基礎架構(例如hadoop)實現的分布式文件系統(如HDFS,Hadoop?Distributed?File?System)上。即,將采集的日志打印到日志文件上,日志系統在實現上有一個基于內存的日志隊列,并通過后臺程序將日志傳輸至HDFS,相當于通過日志系統實現緩沖,然后將日志傳到HDFS。
現有的客戶端日志處理方案存在如下問題:
由于服務器上的磁盤空間有限,存儲信息的能力受到限制,隨著日志數量的快速增長,服務器能夠存儲的日志的數量必然受到磁盤空間的局限,導致能夠處理的日志數量受到限制,有限的磁盤空間無法滿足日益增長的日志數量的需要。
另外,服務器重啟或崩潰時,現有的客戶端日志處理方案還存在日志隊列上(內存上緩存)的日志將丟失的問題,由此導致保存的日志的安全性無法得到有效保證。
發明內容
本申請實施例提供一種客戶端日志處理方法和裝置,用于解決現有技術中,由于磁盤空間有限,導致能夠處理的日志數量受到限制,以及保存的日志安全性較低的問題。
一種客戶端日志處理方法,所述方法包括:
接收到日志時,將該日志寫入作為當前緩沖區的第一文件內存映射MMAP內存;
在接收到第一MMAP內存返回的內存已滿的提示時,判斷作為備用緩沖區的第二MMAP內存是否為空,在確定所述第二MMAP內存為空時,將所述第二MMAP內存轉換作為當前緩沖區,將所述日志寫入所述第二MMAP內存,將返回內存已滿提示的第一MMAP內存中保存的日志發送至分布式文件系統。
一種客戶端日志處理裝置,所述裝置包括接收模塊,日志寫入模塊、切換模塊和發送模塊,其中:
接收模塊,用于接收日志;
日志寫入模塊,用于將接收到的日志寫入作為當前緩沖區的第一文件內存映射MMAP內存;
切換模塊,用于在接收到作為當前緩沖區的第一MMAP內存返回的內存已滿的提示時,判斷作為備用緩沖區的第二MMAP內存是否為空,在確定所述第二MMAP內存為空時,將所述第二MMAP內存轉換作為當前緩沖區,,將所述日志寫入所述第二MMAP內存,并觸發發送模塊;
發送模塊,用于將返回內存已滿提示的第一MMAP內存中保存的日志發送至分布式文件系統。
根據本申請實施例提供的方案,采用雙緩沖機制,預先設置兩塊MMAP內存,分別作為當前緩沖區和備用緩沖區,在當前緩沖區寫滿時,將備用緩沖區切換為當前緩沖區,并將寫滿的緩沖區中保存的日志發送至分布式文件系統進行保存,從而解決現有的磁盤空間有限導致的能夠處理的日志數量受到限制,對日志處理能力有限的問題。且由于MMAP技術的特點,在運行過程中,系統會將緩沖區的數據強行輸出到磁盤,因此,即使服務器重啟或崩潰,緩沖區中保存的數據也可以通過磁盤恢復,不會丟失,從而保證了緩沖區中保存的日志的安全性。
附圖說明
圖1為本申請提供的MMAP原理示意圖;
圖2為本申請實施例一提供的客戶端日志處理方法的步驟流程圖;
圖3為本申請實施例二提供的前端處理方法的步驟流程圖;
圖4為本申請實施例三提供的后端雙緩沖處理方法的步驟流程圖;
圖5為本申請實施例四提供的日志發送方法的步驟流程圖;
圖6為本申請實施例五提供的重啟恢復方法的步驟流程圖;
圖7為本申請實施例六提供的客戶端日志處理裝置的結構示意圖。
具體實施方式
文件內存映射(MMAP,map?files?or?devices?into?memory)可以將一個文件或者其它對象映射進內存。具體的,如圖1所示,MMAP可以把文件的一部分或全部內容直接映射到內存,這樣文件中的信息位置就會在內存中有對應的地址空間,這時對文件的讀寫可以直接用指針來做,而不需要讀/寫(read/write)函數了。同時,操作系統可以將內存數據刷新保存到磁盤上。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里巴巴集團控股有限公司,未經阿里巴巴集團控股有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210059555.4/2.html,轉載請聲明來源鉆瓜專利網。





