[发明专利]一种日志存储方法及装置在审
申请号: | 201611093212.4 | 申请日: | 2016-12-01 |
公开(公告)号: | CN108132955A | 公开(公告)日: | 2018-06-08 |
发明(设计)人: | 王浩硕;胡建华;宁宇;白国涛;张琳 | 申请(专利权)人: | 中移(苏州)软件技术有限公司;中国移动通信集团公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F11/34 |
代理公司: | 北京派特恩知识产权代理有限公司 11270 | 代理人: | 张颖玲;王花丽 |
地址: | 215163 江苏省苏州市高*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 日志 日志存储 存储线程 消息队列 日志缓存 预先设置 输出点 主线 | ||
本发明实施例公开了一种日志存储方法及装置,所述方法包括:当在预先设置的日志输出点处获取到主线业务的当前日志时,建立所述当前日志的存储线程;通过所述存储线程将所述当前日志缓存到消息队列中;在所述消息队列中获取所述当前日志;将所述当前日志存储到本地文件中。
技术领域
本发明涉及数据存储技术,尤其涉及一种日志存储方法及装置。
背景技术
在当今的业务支撑系统中,日志已经成为维护运营系统时所使用的一个重要工具。随着业务的不断扩展,日志的量级也在成倍增加,而如何实现高性能的日志存储也日益显的重要。不同软件技术架构之间的差异性,决定了日志存储方案也不尽相同。现有的日志存储方法主要包括以下三种:
第一、基于同步阻塞式输入输出IO的存储方法:该方法是在对日志具有输出需求的主线业务内,日志存储与主线业务使用同一个线程。具体地,在该线程中直接建立IO策略,通过该IO策略将主线业务产生的日志存储到本地文件中。
第二、基于异步非阻塞式IO的存储方法:该方法是在对日志具有输出需求的主线业务内,日志存储与主线业务使用不同的线程。具体地,当在主线业务的日志输出点处获取到主线业务的当前日志时,建立当前日志的存储线程,在新建的存储线程中建立IO策略,通过该策略将主线业务产生的日志存储到本地文件中。
第三、基于合并式IO的存储方法:该方法是针对主线业务的一次处理过程中需要多次输出日志的场景而提出的。在合并式IO的存储方案中,将多个日志输出到内存中,在主线业务处理结束时或者主线业务完成到达某个阶段时,将内存中全部日志通过一次性IO存储到本地文件中。
在实现本发明的过程中,发明人发现现有技术中至少存在如下问题:
在现有的第一种日志存储方法中,日志存储与主线业务使用同一个线程,主线业务将会受到日志存储的严重影响;在现有的第二种日志存储方法中,日志存储与主线业务虽然使用不同的线程,但是当日志输出需求较大时,日志存储仍然会对主线业务产生较大的影响;在现有的第三种日志存储方法中,如果内存在输出日志之前发生故障,则全部日志就会丢失,这样就会导致日志存储的可靠性变差。
发明内容
为解决上述技术问题,本发明实施例期望提供一种日志存储方法及装置,不仅可以减少日志存储对主线业务的影响,而且还可以增加日志存储的可靠性。
本发明的技术方案是这样实现的:
本发明实施例提出了一种日志存储方法,所述方法包括:
当在预先设置的日志输出点处获取到主线业务的当前日志时,建立所述当前日志的存储线程;通过所述存储线程将所述当前日志缓存到消息队列中;
在所述消息队列中获取所述当前日志;将所述当前日志存储到本地文件中。
在上述实施例中,所述建立所述当前日志的存储线程,包括:
确定所述主线业务占用的第一资源;
在所述第一资源之外获取所述存储线程所需要的第二资源;
使用所述第二资源建立所述存储线程。
在上述实施例中,所述通过所述存储线程将所述当前日志缓存到消息队列中,包括:
确定所述当前日志的日志类型;在所述消息队列中确定所述日志类型对应的存储空间;
通过所述存储线程将所述当前日志缓存到所述存储空间中。
在上述实施例中,在所述消息队列中获取所述当前日志之前,所述方法还包括:
对所述消息队列进行监控;
当在所述消息队列中监控到所述当前日志时,在所述消息队列中获取所述当前日志。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中移(苏州)软件技术有限公司;中国移动通信集团公司,未经中移(苏州)软件技术有限公司;中国移动通信集团公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611093212.4/2.html,转载请声明来源钻瓜专利网。