[发明专利]一种客户端日志处理方法和装置有效
申请号: | 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.vipzhuanli.com/pat/books/201210059555.4/2.html,转载请声明来源钻瓜专利网。