一种日志上报方法、系统、设备及计算机可读存储介质与流程

文档序号:33552934发布日期:2023-03-22 10:57阅读:34来源:国知局
一种日志上报方法、系统、设备及计算机可读存储介质与流程

1.本技术涉及计算机技术领域,特别涉及一种日志上报方法、系统、设备及计算机可读存储介质。


背景技术:

2.在同时或极短时间内,有大量的请求到达服务端,每个请求都需要服务端耗费资源进行处理,并做出相应的反馈。因为资源有限,不可能同时去处理并满足这些大量的请求,从而带来一系列的问题,统称就是高并发的问题。
3.在高并发环境下,对日志系统的上报性能要求极高,如果响应不及时,会给系统带来极大的负担,但是如果,引入分布式集群系统,又会增加巨大的成本。现有技术一般通过http(hyper text transfer protocol,超文本传输协议)接口上报日志,然而该方法存在以下缺点:一方面每次上报都需要向服务器发送一次请求,因此当获取多个日志时,由于不能及时的获取日志,会对系统造成影响;另一方面只调用一个http接口,http接口承载量有限导致系统承载量有限,从而影响整体性能。因此,需要提供一种日志上报方法,来解决现有技术中在高并发环境下因响应不及时而对系统造成影响和整体性能差的问题。


技术实现要素:

4.本技术的目的是提供一种日志上报方法、系统、设备及计算机可读存储介质,从而避免在高并发环境下因响应不及时而对系统造成影响,同时提高整体性能。
5.为实现上述目的,本技术提供了一种日志上报方法,包括:对客户端生成的多个日志数据进行压缩,生成日志文件;通过第一处理器将所述日志文件上传到数据库;当接收到获取日志文件的请求时,通过第二处理器从所述数据库中获取所述日志文件,并对所述日志文件进行解压;将解压后的所述日志文件上传到服务器。
6.可选的,所述对客户端生成的多个日志数据进行压缩,包括:将客户端生成的多个日志数据转成json格式;对转成json格式的所述日志数据进行压缩;相应的,所述对所述日志文件进行解压后,还包括:将解压后的所述日志文件解析成json格式;相应的,所述将解压后的所述日志文件上传到服务器,包括:将解析成json格式的所述日志文件上传到服务器。
7.可选的,所述通过第二处理器从所述数据库中获取所述日志文件,并对所述日志文件进行解压,包括:通过第二处理器采用spring-batch框架从所述数据库中获取所述日志文件,并对所述日志文件进行解压。
8.可选的,所述通过第二处理器采用spring-batch框架从所述数据库中获取所述日志文件,并对所述日志文件进行解压,包括:通过第二处理器采用spring-batch框架从所述数据库中获取所述日志文件,并进行分片,对各分片的所述日志文件进行解压;相应的,所述将解压后的所述日志文件上传到服务器,包括:当检测到各分片的所述日志文件解压完成时,将解压后的所述日志文件上传到服务器。
9.可选的,所述对客户端生成的多个日志数据进行压缩,生成日志文件后,还包括:对所述日志文件进行加密;相应的,所述对所述日志文件进行解压前,还包括:对所述日志文件进行解密。
10.可选的,所述将解压后的所述日志文件解析成json格式,包括:当解析失败时,更新数据状态为json解析失败,以根据所述数据状态确定产生问题的原因。
11.可选的,所述通过第一处理器将所述日志文件上传到数据库,包括:通过第一处理器将所述日志文件上传到文件系统,并生成文件路径;将所述文件路径存储到数据库;相应的,所述通过第二处理器从所述数据库中获取所述日志文件,包括:从所述数据库中获取所述文件路径;根据所述文件路径,从所述文件系统中获取所述日志文件。
12.为实现上述目的,本技术还提供了一种日志上报系统,包括:客户端存储模块,用于对客户端生成的多个日志数据进行压缩,生成日志文件;数据接收模块,用于通过第一处理器将所述日志文件上传到数据库;数据处理模块,用于当接收到获取日志文件的请求时,通过第二处理器从所述数据库中获取所述日志文件,并对所述日志文件进行解压;文件存储模块,用于将解压后的所述日志文件上传到服务器。
13.为实现上述目的,本技术还提供了一种日志上报设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上述所述的日志上报方法的步骤,所述处理器包括第一处理器和第二处理器。
14.为实现上述目的,本技术还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的日志上报方法的步骤。
15.本技术提供的一种日志上报方法,包括:对客户端生成的多个日志数据进行压缩,生成日志文件;通过第一处理器将所述日志文件上传到数据库;当接收到获取日志文件的请求时,通过第二处理器从所述数据库中获取所述日志文件,并对所述日志文件进行解压;将解压后的所述日志文件上传到服务器。
16.显然,本技术通过将客户端生成的多个日志数据压缩成一个日志文件,向服务器发送一次请求就能获取到多个日志,相比现有技术中每次上报都需要向服务器发送一次请求,能够避免在高并发环境下因响应不及时而对系统造成影响;同时,功能由上传文件和处
理文件两个系统分开处理,保证两个系统业务独立不会互相影响,增加了整体系统的承载量,从而提高整体性能。本技术还提供一种日志上报系统、设备及计算机可读存储介质,具有上述有益效果。
附图说明
17.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
18.图1为本技术实施例提供的一种日志上报方法方法的流程图;图2为本技术实施例提供的另一种日志上报方法的流程示意图;图3为本技术实施例提供的一种日志上报方法中的日志的具体结构;图4为本技术实施例提供的一种日志上报系统的结构框图。
具体实施方式
19.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
20.请参考图1,图1为本技术实施例提供的一种日志上报方法的流程图,该方法可以包括:s101:对客户端生成的多个日志数据进行压缩,生成日志文件。
21.本实施例并不限定日志数据的具体数量,可以是多个日志数据,还可以是客户端生成的所有日志数据。需要说明的是,将客户端生成的多个日志数据压缩成一个日志文件,向服务器发送一次请求就能获取到多个日志,可以有效地减小向服务器发送的请求次数;进一步的,当将客户端生成的所有日志数据压缩成一个日志文件时,向服务器发送一次请求就能获取到所有的日志。本实施例并不限定对日志数据进行压缩的具体过程,例如可以是对客户端生成的多个日志数据进行预处理;对预处理后的日志数据进行压缩。为了便于数据传输,本实施例可以将客户端生成的多个日志数据转成json(jjavascript object notation,js对象简谱)格式;对转成json格式的日志数据进行压缩;相应的,步骤s103中对日志文件进行解压后,还可以将解压后的日志文件解析成json格式;相应的,步骤s104可以为将解析成json格式的日志文件上传到服务器。进一步的,为了便日后排查问题,本实施例可以当解析失败时,更新数据状态为json解析失败,以根据数据状态确定产生问题的原因。
22.本实施例并不限定生成日志文件的后续操作,例如可以是对日志文件进行加密;相应的,步骤s104中对日志文件进行解压前,可以对日志文件进行解密。
23.进一步的,通过http接口上报日志,日志无法保证100%上传,为了保证日志不丢失,可追回,本实施例可以将日志文件写入客户端的本地文件。本实施例并不限定日志的具体存储格式,例如可以是二进制存储,日志分为头部、数据位、尾部。
24.s102:通过第一处理器将日志文件上传到数据库。
25.本实施例并不限定将日志文件上传到数据库的具体频率,例如可以是通过第一处理器实时地将日志文件上传到数据库,也可以是当满足预设条件时,通过第一处理器将日志文件上传到数据库。
26.进一步的,因为文件路径比文件的数据量小,在数据库中的占的容量小,为了减小日志文件在数据库中所占容量,本实施例可以通过第一处理器将日志文件上传到文件系统,并生成文件路径;将文件路径存储到数据库;相应的,步骤s103中通过第二处理器从数据库中获取日志文件,可以是从数据库中获取文件路径;根据文件路径,从文件系统中获取日志文件。本实施例并不限定文件系统的具体种类,只要能够实现存储日志文件即可。
27.s103:当接收到获取日志文件的请求时,通过第二处理器从数据库中获取日志文件,并对日志文件进行解压。
28.本实施例并不限定对日志文件进行处理的具体方式,例如通过第二处理器采用spring-batch(批处理框架)框架从数据库中获取日志文件,并对日志文件进行解压。进一步的,为了增加程序处理效率,本实施例可以通过第二处理器采用spring-batch框架从数据库中获取日志文件,并进行分片,对各分片的日志文件进行解压;相应的,步骤s104可以是当检测到各分片的日志文件解压完成时,将解压后的日志文件上传到服务器。
29.需要说明的是,由于处理器的承载量有限,如果用同一个处理器同时执行上传文件和处理文件的过程,会影响整体性能,而本实施例通过第一处理器执行上传文件的过程和第二处理器执行处理文件的过程,保证两个系统业务独立不会互相影响,增加了整体系统的承载量,从而提高整体性能。
30.s104:将解压后的日志文件上传到服务器。
31.本实施例并不限定服务器的具体种类,可以根据实际需求确定服务器的具体种类。
32.基于上述实施例,本技术通过将客户端生成的多个日志数据压缩成一个日志文件,向服务器发送一次请求就能获取到多个日志,相比现有技术中每次上报都需要向服务器发送一次请求,能够避免在高并发环境下因响应不及时而对系统造成影响;同时,功能由上传文件和处理文件两个系统分开处理,保证两个系统业务独立不会互相影响,增加了整体系统的承载量,从而提高整体性能。
33.下面结合具体的实例说明上述日志上报过程,请参考图2和图3,图2为本技术实施例提供的一种日志上报方法的流程示意图,图3为本技术实施例提供的一种日志上报方法中的日志的具体结构,该过程具体如下:1、对客户端生成的多个日志数据进行压缩,生成日志文件,具体如下:(1)参考图3,日志存储格式:二进制存储,分为头部、数据位、尾部;(2)头部有5个字节,前三位为预留位,后两位为数据位的长度,支持最大长度为65535;(3)数据位,将对象数据转成json格式,先压缩,然后加密后形成的二进制串写入本地文件,此部分为数据位最大存储字节数为65535个;(4)尾部,结束符,1个字节,值为1。
34.上述过程在客户端存储模块执行。
35.2、通过第一处理器将日志文件上传到数据库,具体如下:
将日志文件上传至文件系统,上传需要先授权,再上传,完成后将文件路径存储至数据库。
36.上述过程在数据接收模块执行。
37.3、当接收到获取日志文件的请求时,通过第二处理器从数据库中获取日志文件,并对日志文件进行解压,具体如下:(1)使用spring-batch框架,作为数据处理模块,使用分区模式,从db(doggabyte,数据储存单位)拿出数据并分片,增加程序处理效率,在文件下载失败,解密失败,解压失败,会触发框架的重试功能;(2)定时从数据库读出文件路径,再解析;(3)按步骤1的规则,读取文件,并解压、解密文件;(4)解析为约定的json数据格式,解析失败就更新数据状态为json解析失败;(5)出现失败,修改状态,以便日后排查问题。
38.上述过程在数据处理模块执行。
39.4、将解压后的日志文件上传到服务器,具体如下:将解析好的约定的数据,存储到es(elasticsearch,搜索服务器),并更新数据状态为完成。
40.上述过程在文件存储模块执行。
41.下面对本技术实施例提供的一种日志上报系统、设备及计算机可读存储介质进行介绍,下文描述的日志上报系统、设备及计算机可读存储介质与上文描述的日志上报方法可相互对应参照。
42.请参考图4,图4为本技术实施例提供的一种日志上报系统的结构框图,该系统可以包括:客户端存储模块100,用于对客户端生成的多个日志数据进行压缩,生成日志文件;数据接收模块200,用于通过第一处理器将日志文件上传到数据库;数据处理模块300,用于当接收到获取日志文件的请求时,通过第二处理器从数据库中获取日志文件,并对日志文件进行解压;文件存储模块400,用于将解压后的日志文件上传到服务器。
43.基于上述实施例,本技术通过将客户端生成的多个日志数据压缩成一个日志文件,向服务器发送一次请求就能获取到多个日志,相比现有技术中每次上报都需要向服务器发送一次请求,能够避免在高并发环境下因响应不及时而对系统造成影响;同时,功能由上传文件和处理文件两个系统分开处理,保证两个系统业务独立不会互相影响,增加了整体系统的承载量,从而提高整体性能。
44.基于上述实施例,客户端存储模块100,包括:数据格式转化单元,用于将客户端生成的多个日志数据转成json格式;压缩日志数据单元,用于对转成json格式的日志数据进行压缩;相应的,数据处理模块300,还包括:解析日志文件单元,用于将解压后的日志文件解析成json格式;相应的,文件存储模块400,具体用于将解析成json格式的日志文件上传到服务
器。
45.基于上述各实施例,数据处理模块300,具体用于当接收到获取日志文件的请求时,通过第二处理器采用spring-batch框架从数据库中获取日志文件,并对日志文件进行解压。
46.基于上述各实施例,数据处理模块300,具体用于当接收到获取日志文件的请求时,通过第二处理器采用spring-batch框架从数据库中获取日志文件,并进行分片,对各分片的日志文件进行解压;相应的,文件存储模块400,具体用于当检测到各分片的日志文件解压完成时,将解压后的日志文件上传到服务器。
47.基于上述各实施例,客户端存储模块,还包括:加密日志文件单元,用于对日志文件进行加密;相应的,数据处理模块300,还包括:解密日志文件单元,用于对日志文件进行解密。
48.基于上述各实施例,数据处理模块300,还包括:数据更新模块,用于当解析失败时,更新数据状态为json解析失败,以根据数据状态确定产生问题的原因。
49.基于上述各实施例,数据接收模块200,包括:上传文件系统单元,通过第一处理器将日志文件上传到文件系统,并生成文件路径;上传数据库单元,用于将文件路径存储到数据库;相应的,数据处理模块300,包括:获取文件路径单元,用于从数据库中获取文件路径;获取日志文件单元,用于根据文件路径,从文件系统中获取日志文件。
50.基于上述实施例,本技术还提供了一种日志上报设备,包括:存储器和处理器,其中,存储器,用于存储计算机程序;处理器,用于执行计算机程序时实现上述各实施例所述的日志上报方法的步骤。当然,该日志上报设备还可以包括各种必要的网络接口、电源以及其它零部件等。
51.本技术还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述各实施例所述的日志上报方法的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory ,rom)、随机存取存储器(random access memory ,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
52.本文中应用了具体个例对本技术的原理及实施方式进行了阐述,且各个实施例间为递进关系,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,可参见对应的方法部分说明。以上实施例的说明只是用于帮助理解本技术的方法及其核心思想。对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
53.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作
之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1