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