[發明專利]一種客戶端日志處理方法和裝置有效
| 申請號: | 201210059555.4 | 申請日: | 2012-03-08 |
| 公開(公告)號: | CN103309767A | 公開(公告)日: | 2013-09-18 |
| 發明(設計)人: | 張黎明 | 申請(專利權)人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | G06F11/14 | 分類號: | G06F11/14;G06F12/16 |
| 代理公司: | 北京同達信恒知識產權代理有限公司 11291 | 代理人: | 郭潤湘 |
| 地址: | 英屬開曼群島大開曼*** | 國省代碼: | 開曼群島;KY |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 客戶端 日志 處理 方法 裝置 | ||
1.一種客戶端日志處理方法,其特征在于包括:
接收到日志時,將該日志寫入作為當前緩沖區的第一文件內存映射MMAP內存;
在接收到第一MMAP內存返回的內存已滿的提示時,判斷作為備用緩沖區的第二MMAP內存是否為空,在確定所述第二MMAP內存為空時,將所述第二MMAP內存轉換作為當前緩沖區,將所述日志寫入所述第二MMAP內存,將返回內存已滿提示的第一MMAP內存中保存的日志發送至文件系統。
2.如權利要求1所述的方法,其特征在于,將返回內存已滿提示的第一MMAP內存中保存的日志發送至分布式文件系統之前,還包括:
將待發送的日志所在的第一MMAP內存的標識、第一MMAP內存中日志的總條數、第一MMAP內存被分割成的內存塊數N,所述N為大于1的正整數、以及每個內存塊中存儲的待發送的日志數量,均寫入到用于存放狀態信息的第三MMAP內存;
將返回內存已滿提示的第一MMAP內存中保存的日志發送至文件系統,具體包括:
利用線程池中的N個線程發送第一MMAP內存中保存的日志;
在任意一個線程發送一條日志完畢時,將第三MMAP內存中記錄的該日志所存儲在的內存塊中待發送的日志數量減1;以及
將發送日志完畢的線程放回線程池。
3.如權利要求2所述的方法,其特征在于,在服務器重啟時,所述方法還包括:
將持久化到硬盤的第一MMAP內存對應的緩沖區文件加載映射到第一MMAP內存,將持久化到硬盤的第二MMAP內存對應的緩沖區文件加載映射到第二MMAP內存,將持久化到硬盤的狀態信息文件加載映射到第三MMAP內存;
將狀態信息文件中記錄的MMAP內存標識對應的第一MMAP內存作為備用緩沖區,將非狀態信息文件記錄的第二MMAP內存作為當前緩沖區;
根據所述狀態信息文件,確定第一MMAP內存中存儲的待發送的日志數量不為0的內存塊,從線程池中取出線程繼續發送該內存塊中待發送的日志。
4.如權利要求1所述的方法,其特征在于,所述方法還包括:
在接收到作為當前緩沖區的第一MMAP內存返回的內存已滿的提示,并確定作為備用緩沖區的第二MMAP內存非空時,將接收到的日志打印到日志文件上;
利用后臺程序定時掃描所述日志文件,并在每次掃描時,將所述日志文件相對上次掃描增加的日志上傳至文件系統。
5.如權利要求1~4任一所述的方法,其特征在于,接收到日志時,將該日志寫入作為當前緩沖區的第一MMAP內存,具體包括:
接收客戶端通過超文本傳輸協定HTTP的POST方式發送的數據包;
并對該數據包進行循環冗余校驗CRC校驗,在校驗通過時,啟動異步線程將該數據包中的日志寫入作為當前緩沖區的第一MMAP內存。
6.一種客戶端日志處理裝置,其特征在于包括:接收模塊,日志寫入模塊、切換模塊和發送模塊,其中:
接收模塊,用于接收日志;
日志寫入模塊,用于將接收到的日志寫入作為當前緩沖區的第一文件內存映射MMAP內存;
切換模塊,用于在接收到作為當前緩沖區的第一MMAP內存返回的內存已滿的提示時,判斷作為備用緩沖區的第二MMAP內存是否為空,在確定所述第二MMAP內存為空時,將所述第二MMAP內存轉換作為當前緩沖區,將所述日志寫入所述第二MMAP內存,并觸發發送模塊;
發送模塊,用于將返回內存已滿提示的第一MMAP內存中保存的日志發送至文件系統。
7.如權利要求6所述的裝置,其特征在于,還包括信息寫入模塊,用于將待發送的日志所在的第一MMAP內存的標識、第一MMAP內存中日志的總條數、第一MMAP內存被分割成的內存塊數N,所述N為大于1的正整數、以及每個內存塊中存儲的待發送的日志數量,均寫入到用于存放狀態信息的第三MMAP內存;
發送模塊,具體用于利用線程池中的N個線程發送第一MMAP內存中保存的日志,在任意一個線程發送一條日志完畢時,將第三MMAP內存中記錄的該日志所存儲在的內存塊中待發送的日志數量減1,以及,將發送日志完畢的線程放回線程池。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里巴巴集團控股有限公司,未經阿里巴巴集團控股有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210059555.4/1.html,轉載請聲明來源鉆瓜專利網。





