基于流式计算的数据监控方法及装置与流程

文档序号:11155418阅读:364来源:国知局
基于流式计算的数据监控方法及装置与制造工艺

本发明实施例涉及计算机技术领域,尤其涉及一种基于流式计算的数据监控方法及装置。



背景技术:

随着互联网技术的飞速发展,网络业务量不断增大,业务方的不断增多,使得服务被调用的次数明显增大,进而对网络的大数据处理提出了较高要求;现有技术中,通过storm流式计算框架接收服务请求日志信息,经由storm做简单处理后,将明细数据写入到MySQL中。

然而,在实施本技术方案的过程中,发现现有技术存在以下缺陷:由于storm接收数据的方式只支持阻塞方式的消息队列,消息只能通过实时的接收,在访问量暴增的情况下,storm对于MySQL的实时写入压力会同时暴增,会对MySQL数据库造成巨大的压力,同时也会减缓计算速度和数据的显示速度。



技术实现要素:

本发明实施例提供一种基于流式计算的数据监控方法及装置,可以有效克服现有技术中存在的会对MySQL数据库造成巨大的压力,同时也会减缓计算速度和数据的显示速度的问题。

本发明实施例的一方面提供了一种基于流式计算的数据监控方法,包括:

通过分布式发布订阅消息系统KAFKA获取服务被调用的日志信息;

采用分布式流式处理方法Spark streaming对日志信息进行分析处理,获得日志明细信息和日志汇总信息;

将所述日志明细信息写入到分布式文件系统HDFS中,并将所述日志汇总信息存储至关系型数据库管理系统MYSQL中。

如上所述的基于流式计算的数据监控方法,所述通过分布式发布订阅消息系统KAFKA获取服务被调用的日志信息,具体包括:

通过预设的监控埋点AGENT从服务端中获取服务被调用的日志信息;

将所述日志信息写入到所述KAFKA中预先创建的TOPIC中。

如上所述的基于流式计算的数据监控方法,所述采用分布式流式处理方法Spark streaming对日志信息进行分析处理,具体包括:

采用预设的汇总算法对所述日志信息进行分析处理,获得所述日志汇总信息。

如上所述的基于流式计算的数据监控方法,所述采用分布式流式处理方法Spark streaming对日志信息进行分析处理,具体包括:

获取KAFKA中所述TOPIC的TOPIC信息;

根据所述TOPIC信息并按照预设的采集周期从所述KAFKA中拉取相应的所述日志明细信息。

如上所述的基于流式计算的数据监控方法,在将所述日志汇总信息存储至关系型数据库管理系统MYSQL中之后,所述方法还包括:

接收用户发送的查询指令,所述查询指令中包括查询时间;

根据所述查询指令从所述MYSQL中查找与所述查询时间相对应的日志汇总信息,并显示所查找到的日志汇总信息。

本发明的又一方面提供了一种基于流式计算的数据监控装置,包括:

获取模块,用于通过分布式发布订阅消息系统KAFKA获取服务被调用的日志信息;

处理模块,用于采用分布式流式处理方法Spark streaming对日志信息进行分析处理,获得日志明细信息和日志汇总信息;

存储模块,用于将所述日志明细信息写入到分布式文件系统HDFS中,并将所述日志汇总信息存储至关系型数据库管理系统MYSQL中。

如上所述的基于流式计算的数据监控装置,所述获取模块,具体用于:

通过预设的监控埋点AGENT从服务端中获取服务被调用的日志信息;

将所述日志信息写入到所述KAFKA中预先创建的TOPIC中。

如上所述的基于流式计算的数据监控装置,所述处理模块,具体用于:

采用预设的汇总算法对所述日志信息进行分析处理,获得所述日志汇总信息。

如上所述的基于流式计算的数据监控装置,所述处理模块,具体用于:

获取KAFKA中所述TOPIC的TOPIC信息;

根据所述TOPIC信息并按照预设的采集周期从所述KAFKA中拉取相应的所述日志明细信息。

如上所述的基于流式计算的数据监控装置,所述数据监控装置还包括:

接收模块,用于在将所述日志汇总信息存储至关系型数据库管理系统MYSQL中之后,接收用户发送的查询指令,所述查询指令中包括查询时间;

显示模块,用于根据所述查询指令从所述MYSQL中查找与所述查询时间相对应的日志汇总信息,并显示所查找到的日志汇总信息。。

本发明提供的基于流式计算的数据监控方法及装置,通过KAFKA获取服务被调用的日志信息,采用Spark streaming对日志信息进行分析处理,并将得到的日志明细信息写入HDFS中,将日志汇总信息存储至MYSQL中,有效地解决了现有技术中存在的会对MySQL数据库造成巨大的压力,同时也会减缓计算速度和数据的显示速度的问题,提高了数据处理效率,同时减缓了对MySQL数据库造成的数据压力,进而提高了该数据监控方法应用的稳定可靠性,有利于市场的推广与应用。

附图说明

图1为本发明实施例提供的一种基于流式计算的数据监控方法的流程示意图;

图2为本发明实施例提供的通过分布式发布订阅消息系统KAFKA获取服务被调用的日志信息的流程示意图;

图3为本发明实施例提供的采用分布式流式处理方法Spark streaming对日志信息进行分析处理的流程示意图;

图4为本发明实施例提供的显示所查找到的日志汇总信息的流程示意图;

图5为本发明实施例提供的一种基于流式计算的数据监控装置的结构示意图;

图6为本发明实施例提供的基于流式计算的数据监控装置具体应用时的流程示意图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实例用于说明本发明,但不用来限制本发明的范围。

图1为本发明实施例提供的一种基于流式计算的数据监控方法的流程示意图;参考附图1可知,本实施例提供了一种基于流式计算的数据监控方法,包括:

S101:通过分布式发布订阅消息系统KAFKA获取服务被调用的日志信息;

KAFKA是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据;这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决,通过KAFKA获取服务被调用的日志信息,可以实现通过Hadoop的并行加载机制来统一线上和离线的消息处理,并通过集群机来提供实时的消费。

S102:采用分布式流式处理方法Spark streaming对日志信息进行分析处理,获得日志明细信息和日志汇总信息;

其中,本实施例对于采用分布式流式处理方法对日志信息进行分析处理的具体实现过程不做限定,本领域技术人员可以根据具体的设计需求进行设置,只要能够通过对日志信息进行分析处理获得日志明细信息和日志汇总信息即可,在此不再赘述。

S103:将日志明细信息写入到分布式文件系统HDFS中,并将日志汇总信息存储至关系型数据库管理系统MYSQL中。

将日志明细信息写入到HDFS中,将日志汇总信息存储至MYSQL中,有效提提高了数据收集以及数据计算的效率,缓解了MYSQL的数据处理压力和存储压力,进而提高了该数据监控方法的实用性。

本实施例提供的基于流式计算的数据监控方法,通过KAFKA获取服务被调用的日志信息,采用Spark streaming对日志信息进行分析处理,并将得到的日志明细信息写入HDFS中,将日志汇总信息存储至MYSQL中,有效地解决了现有技术中存在的会对MySQL数据库造成巨大的压力,同时也会减缓计算速度和数据的显示速度的问题,提高了数据处理效率,同时减缓了对MySQL数据库造成的数据压力,进而提高了该数据监控方法应用的稳定可靠性,有利于市场的推广与应用。

图2为本发明实施例提供的通过分布式发布订阅消息系统KAFKA获取服务被调用的日志信息的流程示意图;在上述实施例的基础上,参考附图2可知,本实施例对于通过KAFKA获取日志信息的具体实现过程不做限定,较为优选的,将通过分布式发布订阅消息系统KAFKA获取服务被调用的日志信息,设置为具体包括:

S1011:通过预设的监控埋点AGENT从服务端中获取服务被调用的日志信息;

在具体应用时,可能会存在多个服务端,因此,为了保证日志信息获取的准确度,可以将每个服务端中设置有AGENT,以使得AGENT从服务端中可以有效获取到服务被调用的日志信息。

S1012:将日志信息写入到KAFKA中预先创建的TOPIC中。

在AGENT获取到日志信息后,将日志信息写入到KAFKA消息队列中,KAFKA根据不同的服务设定到预先创建的TOPIC中,进而实现了KAFKA获取到日志信息的过程。

通过设置的AGENT获取日志信息,有效地保证了日志信息获取的准确可靠性,并且将日志信息存储在KAFKA中预先创建的TOPIC中,有效地保证了日志信息存储的稳定性,并且便于对日志信息的调用与计算处理。

图3为本发明实施例提供的采用分布式流式处理方法Spark streaming对日志信息进行分析处理的流程示意图;在上述实施例的基础上,继续参考附图3可知,本实施例对于采用分布式流式处理方法Spark streaming对日志信息进行分析处理的具体实现过程不做限定,本领域技术人员可以根据具体的设计需求进行设置,其中,较为优选的,将采用分布式流式处理方法Spark streaming对日志信息进行分析处理,设置为具体包括:

S1021:采用预设的汇总算法对日志信息进行分析处理,获得日志汇总信息。

其中,汇总算法为预先设置的,并且该汇总算法可以为现有技术中的处理算法,用于对日志信息进行汇总处理,进而可以获得日志汇总信息;另外,为了进一步减缓数据处理的压力,用户可以设置计算周期,按照预设的计算周期获取日志汇总信息,进而实现了周期内的日志指标汇总。

S1022:获取KAFKA中TOPIC的TOPIC信息;

由于日志信息存储在KAFKA中的TOPIC中,因此,在获取日志明细信息之前,需要配置对应的TOPIC信息,以实现从KAFKA中拉取相应的日志信息。

S1023:根据TOPIC信息并按照预设的采集周期从KAFKA中拉取相应的日志明细信息。

用户可以按照预设的采集周期定期获取日志明细信息,进而可以有效地减少日志信息处理的压力,并且还可以有效地提高对日志信息处理的效率,进一步提高了该数据监控方法的实用性。

图4为本发明实施例提供的显示所查找到的日志汇总信息的流程示意图;在上述实施例的基础上,继续参考附图4可知,在经过分析处理后,获得日志明细信息和日志汇总信息后,为了方便用户调取与查看,在将日志汇总信息存储至关系型数据库管理系统MYSQL中之后,将方法还包括:

S201:接收用户发送的查询指令,查询指令中包括查询时间;

其中,对于接收用户发送的查询指令的具体实现方式不做限定,本领域技术人员可以根据具体的设计需求进行设置,例如:可以通过蓝牙、WiFi以及有线连接的方式来接收用户发送的查询指令,查询指令中包括查询时间,以按照查询时间获得相对应的日志汇总信息/日志明细信息。

S202:根据查询指令从MYSQL中查找与查询时间相对应的日志汇总信息,并显示所查找到的日志汇总信息。

当用户欲查询的信息为日志汇总信息时,由于日志汇总信息存储于MYSQL中,因此,可以在MYSQL中查找与查询时间相对应的日志汇总信息,并可以通过显示设备显示所查找到的日志汇总信息,方便用户直观查看日志汇总信息。

相类似的,当用户欲查询的信息为日志明细信息时,由于日志明细信息存储于HDFS中,因此,可以在HDFS中查找与查询时间相对应的日志明细信息,并可以通过显示设备显示所查找到的日志明细信息,方便用户直观查阅日志明细信息。

通过上述查阅并显示日志汇总信息的方式,可以方便用户对日志汇总信息进行查阅与管理,进一步提高了该数据监控方法的实用性,有利于市场的推广与应用。

具体应用时,参考附图6可知,本技术方案所提供的数据监控方法的操作步骤如下:

1、启动KAFKA,创建对应的TOPIC;

2、服务日志通由埋点AGENT被写入到对应的KAFKA的TOPIC中;

3、SPARKSTREAMING开发,用户根据需求设定数据采集周期;指定KAFKA中的TOPIC;根据原有指标统计算法,设置基于SPARK的汇总算法;

4、SPARKSTREAMING按照数据采集周期接收KAFKA中的日志数据,并对日志数据进行汇总计算,获得日志汇总指标;

5、将从KAFKA中被SPARKSTREAMING拉取的服务日志明细数据写入到HDFS文件系统中;

6、汇总指标数据写入到MYSQL数据库中;

7、当前端调用查询时,根据选择的时间周期,从MYSQL数据库中,匹配对应时间周期内的汇总指标;

8、将所选择的数据返回前端进行展示。

基于上述过程,本技术方案较现有技术而言,可以有效地缩减了存空间,具体的,以服务QPS为4000条为例,假设,现有技术中存储5分钟的数据会产生4000*5=20000条数据;而本申请中同样以周期5分钟为例,将原有的5分钟20000条数据直接汇总为1条,压缩比例为20000:1;并且,当用于需要查看监控系统时,以监控周期为10分钟为例,现有技术中需要提取出10分钟内所有的明细数据,并在监控引擎中进行汇总计算,效率十分缓慢,且高占用网络IO;而由于本技术方案中的数据存储周期为5分钟,因此,计算10分钟的汇总数据,只需要提取2条数据即可,且计算逻辑只是单纯的相加,从数据量和相应速度上大大提高,进而大大减少了MYSQL的读写压力,进一步提高了该数据监控方法的实用性,有利于市场的推广与应用。

图5为本发明实施例提供的一种基于流式计算的数据监控装置的结构示意图;参考附图5可知,本实施例提供了一种基于流式计算的数据监控装置,该数据监控装置用于对数据进行监控处理,具体包括:

获取模块1,用于通过分布式发布订阅消息系统KAFKA获取服务被调用的日志信息;

其中,对于获取模块1的具体形状结构不做限定,本领域技术人员可以根据具体的设计需求进行设置;另外,本实施例中获取模块1所实现操作步骤的具体实现过程以及实现效果与上述实施例中步骤S101的实现过程以及实现效果相同,具体可参考上述陈述内容,在此不再赘述。

处理模块2,用于采用分布式流式处理方法Spark streaming对日志信息进行分析处理,获得日志明细信息和日志汇总信息;

其中,对于处理模块2的具体形状结构不做限定,本领域技术人员可以根据具体的设计需求进行设置;另外,本实施例中处理模块2所实现操作步骤的具体实现过程以及实现效果与上述实施例中步骤S102的实现过程以及实现效果相同,具体可参考上述陈述内容,在此不再赘述。

存储模块3,用于将日志明细信息写入到分布式文件系统HDFS中,并将日志汇总信息存储至关系型数据库管理系统MYSQL中。

其中,对于存储模块3的具体形状结构不做限定,本领域技术人员可以根据具体的设计需求进行设置;另外,本实施例中存储模块3所实现操作步骤的具体实现过程以及实现效果与上述实施例中步骤S103的实现过程以及实现效果相同,具体可参考上述陈述内容,在此不再赘述。

本实施例提供的基于流式计算的数据监控装置,获取模块1通过KAFKA获取服务被调用的日志信息,处理模块2采用Spark streaming对日志信息进行分析处理,并且存储模块3将得到的日志明细信息写入HDFS中,将日志汇总信息存储至MYSQL中,有效地解决了现有技术中存在的会对MySQL数据库造成巨大的压力,同时也会减缓计算速度和数据的显示速度的问题,提高了数据处理效率,同时减缓了对MySQL数据库造成的数据压力,进而提高了该数据监控装置应用的稳定可靠性,有利于市场的推广与应用。

在上述实施例的基础上,继续参考附图5可知,本实施例对于获取模块1通过KAFKA获取日志信息的具体实现过程不做限定,较为优选的,将获取模块1,设置为具体用于:

通过预设的监控埋点AGENT从服务端中获取服务被调用的日志信息;

将日志信息写入到KAFKA中预先创建的TOPIC中。

本实施例中获取模块1所实现操作步骤的具体实现过程以及实现效果与上述实施例中步骤S1011-S1012的实现过程以及实现效果相同,具体可参考上述陈述内容,在此不再赘述。

获取模块1通过设置的AGENT获取日志信息,有效地保证了日志信息获取的准确可靠性,并且将日志信息存储在KAFKA中预先创建的TOPIC中,有效地保证了日志信息存储的稳定性,并且便于对日志信息的调用与计算处理。

在上述实施例的基础上,继续参考附图5可知,本实施例对于处理模块2采用分布式流式处理方法Spark streaming对日志信息进行分析处理的具体实现过程不做限定,较为优选的,将处理模块2,具体用于:

采用预设的汇总算法对日志信息进行分析处理,获得日志汇总信息;

处理模块2,具体用于:

获取KAFKA中TOPIC的TOPIC信息;

根据TOPIC信息并按照预设的采集周期从KAFKA中拉取相应的日志明细信息。

本实施例中处理模块2所实现操作步骤的具体实现过程以及实现效果与上述实施例中步骤S1021-S1023的实现过程以及实现效果相同,具体可参考上述陈述内容,在此不再赘述。

用户可以按照预设的采集周期定期获取日志明细信息,进而可以有效地减少日志信息处理的压力,并且还可以有效地提高对日志信息处理的效率,进一步提高了该数据监控装置的实用性。

在上述实施例的基础上,继续参考附图5可知,在经过分析处理后,获得日志明细信息和日志汇总信息后,为了方便用户调取与查看,将数据监控装置设置为还包括:

接收模块4,用于在将日志汇总信息存储至关系型数据库管理系统MYSQL中之后,接收用户发送的查询指令,查询指令中包括查询时间;

其中,对于接收模块4的具体形状结构不做限定,本领域技术人员可以根据具体的设计需求进行设置;另外,本实施例中接收模块4所实现操作步骤的具体实现过程以及实现效果与上述实施例中步骤S201的实现过程以及实现效果相同,具体可参考上述陈述内容,在此不再赘述。

显示模块5,用于根据查询指令从MYSQL中查找与查询时间相对应的日志汇总信息,并显示所查找到的日志汇总信息。

其中,对于显示模块5的具体形状结构不做限定,本领域技术人员可以根据具体的设计需求进行设置,例如,可以将显示模块5设置为显示器、智能终端显示屏等;另外,本实施例中显示模块5所实现操作步骤的具体实现过程以及实现效果与上述实施例中步骤S202的实现过程以及实现效果相同,具体可参考上述陈述内容,在此不再赘述。

通过上述查阅并显示日志汇总信息的方式,可以方便用户对日志汇总信息进行查阅与管理,进一步提高了该数据监控装置的实用性,有利于市场的推广与应用。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1