日志存储的方法及装置制造方法及图纸

技术编号:13941677 阅读:112 留言:0更新日期:2016-10-29 17:25
本公开是关于一种日志存储的方法及装置,该方法包括:在消息列队中预先划分为多个分区,在获取第一日志消息后,根据预设的关键字类型获取第一日志消息的关键字,并获取关键字的哈希码,从而根据关键字的哈希码和消息队列的分区信息确定第一日志消息应当存储的目标分区,并将第一日志消息存储到消息队列中的目标分区中。能够解决无法对日志区分以及在使用日志时实时性差的问题,能够实现日志的分类存储,提高使用日志时实时性。

【技术实现步骤摘要】

本公开涉及日志处理
,尤其涉及一种日志存储的方法及日志存储的装置。
技术介绍
终端(例如手机、电脑等)在使用中会产生大量的日志,我们经常需要对这些日志进行收集,进而对这些日志进行分析。相关技术中日志的收集过程通常是:终端通常先将日志上传到服务器代理,再使用scribe(一种日志收集系统)实时收集这些数据,并将收到的日志消息发送至消息队列,然后消息队列中的日志消息可以导入到分布式文件系统(Hadoop Distributed File System,简称HDFS),从而完成了日志的收集。
技术实现思路
为克服相关技术中存在的问题,本公开提供一种日志存储的方法及装置。根据本公开实施例的第一方面,提供一种日志存储的方法,所述包括方法包括:获取第一日志消息;根据预设的关键字类型获取所述第一日志消息的关键字;获取所述关键字的哈希码;根据所述关键字的哈希码和消息队列的分区信息确定所述第一日志消息应当存储的目标分区;所述消息队列包括多个分区,所述目标分区为所述多个分区中的任一分区;将所述第一日志消息存储到所述消息队列中的所述目标分区中。可选的,所述根据所述关键字的哈希码和消息队列的分区信息确定所述第一日志消息应当存储的目标分区包括:根据所述关键字的哈希码和消息队列的每个分区的标识号确定所述第一日志消息应当存储的目标分区;或者,根据所述关键字的哈希码和消息队列的分区总数确定所述第一日志消息应当存储的目标分区。可选的,所述根据所述关键字的哈希码和消息队列的每个分区的标识号确定所述第一日志消息应当存储的目标分区,包括:获取所述关键字的哈希码的绝对值;将所述关键字的哈希码的绝对值分别与消息队列的每个分区的标识号进行模运算,得到多个模值,其中每个模值对应一个分区;根据每个分区对应的模值确定所述目标分区。可选的,根据所述关键字的哈希码和消息队列的分区总数确定所述第一日志消息应当存储的目标分区,包括:获取所述关键字的哈希码的绝对值;将所述关键字的哈希码的绝对值与所述分区总数进行模运算;获取将进行模运算得到的模值除以预设值所得的余数;根据所述余数确定所述目标分区。可选的,所述目标分区中包括至少一个子分区,所述将所述第一日志消息存储到所述消息队列中的所述目标分区中,包括:根据预设的子关键字类型获取所述第一日志消息的子关键字;获取所述子关键字的哈希码;根据所述子关键字的哈希码和所述目标分区的子分区信息确定所述第一日志消息应当存储的目标子分区;所述目标子分区为所述至少一个子分区中的任一子分区;将所述第一日志消息存储到所述目标子分区。可选的,所述方法还包括:获取待使用的目标日志消息所在分区的分区标识号;根据所述分区标识号从所述目标日志消息所在分区获取所述目标日志消息。可选的,所述根据所述分区标识号从所述目标日志消息所在分区中获取所述目标日志消息包括:获取所述目标日志消息所在的子分区的子分区标识号;所述目标日志消息所在的子分区是所述目标日志消息所在分区中的子分区;根据所述子分区标识号从所述目标日志消息所在的子分区获取所述目标日志消息。可选的,所述方法还包括:获取待使用的目标日志消息的关键字;根据所述目标日志消息的关键字确定所述目标日志消息所在的分区;从所述目标日志消息所在的分区获取所述目标日志消息。可选的,所述从所述目标日志消息所在的分区获取所述目标日志消息包括:获取所述目标日志消息的子关键字;根据所述目标日志消息的子关键字确定所述目标日志消息所在的子分区;所述目标日志消息所在的子分区是所述目标日志消息所在分区中的子分区;从所述目标日志消息所在的子分区获取所述目标日志消息。可选的,所述方法还包括:当满足预设的备份条件时,将消息队列的每个分区中存储的日志消息进行备份。根据本公开实施例的第二方面,提供一种日志存储的装置,所述装置包括:消息获取模块,被配置为获取第一日志消息;关键字识别模块,被配置为根据预设的关键字类型获取所述第一日志消息的关键字;计算模块,被配置为获取所述关键字的哈希码;分区选择模块,被配置为根据所述关键字的哈希码和消息队列的分区信息确定所述第一日志消息应当存储的目标分区;所述消息队列包括多个分区,所述目标分区为所述多个分区中的任一分区;存储模块,被配置为将所述第一日志消息存储到所述消息队列中的所述目标分区中。可选的,所述分区选择模块被配置为:根据所述关键字的哈希码和消息队列的每个分区的标识号确定所述第一日志消息应当存储的目标分区;或者,根据所述关键字的哈希码和消息队列的分区总数确定所述第一日志消息应当存储的目标分区。可选的,所述分区选择模块包括:第一计算子模块,被配置为获取所述关键字的哈希码的绝对值;第二计算子模块,被配置为将所述关键字的哈希码的绝对值分别与消息队列的每个分区的标识号进行模运算,得到多个模值,其中每个模值对应一个分区;确定子模块,被配置为根据每个分区对应的模值确定所述目标分区。可选的,所述分区选择包括:第三计算子模块,被配置为获取所述关键字的哈希码的绝对值;第四计算子模块,被配置为将所述关键字的哈希码的绝对值与所述分区总数进行模运算;获取子模块,被配置为获取将进行模运算得到的模值除以预设值所得的余数;确定子模块,被配置为根据所述余数确定所述目标分区。可选的,所述存储模块包括:关键字获取子模块,被配置为根据预设的子关键字类型获取所述第一日志消息的子关键字;哈希计算子模块,被配置为获取所述子关键字的哈希码;确定子模块,被配置为根据所述子关键字的哈希码和所述目标分区的子分区信息确定所述第一日志消息应当存储的目标子分区;所述目标子分区为所述至少一个子分区中的任一子分区;存储子模块,被配置为将所述第一日志消息存储到所述目标子分区。可选的,所述装置还包括:标识获取模块,被配置为获取待使用的目标日志消息所在分区的分区标识号;第一消息提取模块,被配置为根据所述分区标识号从所述目标日志消息所在分区获取所述目标日志消息。可选的,所述第一消息提取模块包括:标识获取子模块,被配置为获取所述目标日志消息所在的子分区的子分区标识号;所述目标日志消息所在的子分区是所述目标日志消息所在分区中的子分区;消息获取子模块,被配置为根据所述子分区标识号从所述目标日志消息所在的子分区获取所述目标日志消息。可选的,所述装置还包括:关键字获取模块,被配置为获取待使用的目标日志消息的关键字;分区确定模块,被配置为根据所述目标日志消息的关键字确定所述目标日志消息所在的分区;第二消息提取模块,被配置为从所述目标日志消息所在的分区获取所述目标日志消息。可选的,所述第二消息提取模块包括:关键字获取子模块,被配置为获取所述目标日志消息的子关键字;子分区确定子模块,根据所述目标日志消息的子关键字确定所述目标日志消息所在的子分区;所述目标日志消息所在的子分区是所述目标日志消息所在分区中的子分区;消息获取子模块,被配置为从所述目标日志消息所在的子分区获取所述目标日志消息。可选的,所述装置还包括:备份模块,被配置为当满足预设的备份条件时,将消息队列的每个分区中存储的日志消息进行备份。根据本公开实施例的第三方面,提供一种日志存储的装置,所述装置包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为:获取第一日志消息;根据预设的关键字类型获取所本文档来自技高网...

【技术保护点】
一种日志存储的方法,其特征在于,所述方法包括:获取第一日志消息;根据预设的关键字类型获取所述第一日志消息的关键字;获取所述关键字的哈希码;根据所述关键字的哈希码和消息队列的分区信息确定所述第一日志消息应当存储的目标分区;所述消息队列包括多个分区,所述目标分区为所述多个分区中的任一分区;将所述第一日志消息存储到所述消息队列中的所述目标分区中。

【技术特征摘要】
1.一种日志存储的方法,其特征在于,所述方法包括:获取第一日志消息;根据预设的关键字类型获取所述第一日志消息的关键字;获取所述关键字的哈希码;根据所述关键字的哈希码和消息队列的分区信息确定所述第一日志消息应当存储的目标分区;所述消息队列包括多个分区,所述目标分区为所述多个分区中的任一分区;将所述第一日志消息存储到所述消息队列中的所述目标分区中。2.根据权利要求1所述的方法,其特征在于,所述根据所述关键字的哈希码和消息队列的分区信息确定所述第一日志消息应当存储的目标分区包括:根据所述关键字的哈希码和消息队列的每个分区的标识号确定所述第一日志消息应当存储的目标分区;或者,根据所述关键字的哈希码和消息队列的分区总数确定所述第一日志消息应当存储的目标分区。3.根据权利要求2所述的方法,其特征在于,所述根据所述关键字的哈希码和消息队列的每个分区的标识号确定所述第一日志消息应当存储的目标分区,包括:获取所述关键字的哈希码的绝对值;将所述关键字的哈希码的绝对值分别与消息队列的每个分区的标识号进行模运算,得到多个模值,其中每个模值对应一个分区;根据每个分区对应的模值确定所述目标分区。4.根据权利要求2所述的方法,其特征在于,根据所述关键字的哈希码和消息队列的分区总数确定所述第一日志消息应当存储的目标分区,包括:获取所述关键字的哈希码的绝对值;将所述关键字的哈希码的绝对值与所述分区总数进行模运算;获取将进行模运算得到的模值除以预设值所得的余数;根据所述余数确定所述目标分区。5.根据权利要求1所述的方法,其特征在于,所述目标分区中包括至少一个子分区,所述将所述第一日志消息存储到所述消息队列中的所述目标分区中,包括:根据预设的子关键字类型获取所述第一日志消息的子关键字;获取所述子关键字的哈希码;根据所述子关键字的哈希码和所述目标分区的子分区信息确定所述第一日志消息应当存储的目标子分区;所述目标子分区为所述至少一个子分区中的任一子分区;将所述第一日志消息存储到所述目标子分区。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取待使用的目标日志消息所在分区的分区标识号;根据所述分区标识号从所述目标日志消息所在分区获取所述目标日志消息。7.根据权利要求6所述的方法,其特征在于,所述根据所述分区标识号从所述目标日志消息所在分区中获取所述目标日志消息包括:获取所述目标日志消息所在的子分区的子分区标识号;所述目标日志消息所在的子分区是所述目标日志消息所在分区中的子分区;根据所述子分区标识号从所述目标日志消息所在的子分区获取所述目标日志消息。8.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取待使用的目标日志消息的关键字;根据所述目标日志消息的关键字确定所述目标日志消息所在的分区;从所述目标日志消息所在的分区获取所述目标日志消息。9.根据权利要求8所述的方法,其特征在于,所述从所述目标日志消息所在的分区获取所述目标日志消息包括:获取所述目标日志消息的子关键字;根据所述目标日志消息的子关键字确定所述目标日志消息所在的子分区;所述目标日志消息所在的子分区是所述目标日志消息所在分区中的子分区;从所述目标日志消息所在的子分区获取所述目标日志消息。10.根据权利要求1所述的方法,其特征在于,所述方法还包括:当满足预设的备份条件时,将消息队列的每个分区中存储的日志消息进行备份。11.一种日志存储的装置,其特征在于,所述装置包括:消息获取模块,被配置为获取第一日志消息;关键字识别模块,被配置为根据预设的关键字类型获取所述第一日志消息的关键字;计算模块,被配置为获取所述关键字的哈希码;分区选择模块,被配置为根据所述关键字的哈希码和消息队列的分区信息确定所述第一日志消息应当存储的目标分区;所述消息队列包括多个分区,所述...

【专利技术属性】
技术研发人员:张旭华杨松万韶华
申请(专利权)人:北京小米移动软件有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1