日志数据处理方法和系统与流程

文档序号:15143882发布日期:2018-08-10 20:12阅读:207来源:国知局

本申请涉及计算机技术领域,特别是涉及一种日志数据处理方法和系统。



背景技术:

随着企业的快速发展,涉及到的业务也越来越广泛,为了提高业务处理效率,企业会为每个业务都搭建相应的子系统,用户可登录子系统中处理相关的业务。但是,业务被“搬移”到线上处理后,登录到各个子系统的用户众多,用户的不正当操作导致信息泄露,给企业造成了损失。

为了对用户的不正当操作进行监督,需要将与用户操作相关的日志数据存储下来,以便后续分析信息泄露的原因。通常存储日志数据的方法是各个子系统实时的将各个操作对应的日志数据写入日志汇总服务器,但是,在数据流量较大时,日志汇总服务器实时接收所有子系统的日志数据的压力非常大,严重地可能造成日志汇总服务器宕机,从而导致部分日志数据丢失。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够缓解海量日志数据的接收压力的日志数据处理方法和系统。

一种日志数据处理方法,包括:

创建多个与数据中心服务器中的消息队列相应的日志数据读取实例;

从第二预设时间起,以预设时间段为间隔依次开启创建的各个日志数据读取实例;

通过依次开启的日志数据读取实例分别从所述消息队列读取日志数据;

将读取的日志数据持久化存储后,关闭已读取日志数据的日志数据读取实例,直至所述消息队列中的日志数据被读取完毕。

在其中一个实施例中,所述消息队列为多个;所述创建的各个日志数据读取实例与多个消息队列中的一个对应;所述方法还包括:通过依次开启的日志数据读取实例分别从所对应的消息队列读取日志数据。

在其中一个实施例中,还包括:创建第二开关;当所述第二开关满足第二开启条件时,将所述第二开关置为开启状态,以加载用于连接所述数据中心服务器的第二配置文件,按照所述第二配置文件连接所述数据中心服务器;当出现异常时,将第二开关置为关闭状态,以断开与所述数据中心服务器的连接。

在其中一个实施例中,还包括:在通过所述日志数据读取实例从所述消息队列队首成功读取日志数据时,向所述数据中心服务器反馈针对所述消息队列队首的日志数据读取成功的通知;所述通知用于指示所述数据中心服务器在接收到所述通知时,移除所述消息队列队首的日志数据。

在一个实施例中,还包括:从所述消息队列中读取到日志消息后,依据所述日志消息的组成方式,从读取到的日志消息拆分出日志属性和相应的属性值,以获得多个日志数据。

一种日志数据处理系统,所述系统包括业务服务器、数据中心服务器和日志汇总服务器;

所述业务服务器用于获取日志数据,并将获取的所述日志数据存储在本地;还用于在第一预设时间将存储的日志数据发送至所述数据中心服务器;

所述数据中心服务器用于接收所述业务服务器发送的日志数据,并将接收的日志数据存入消息队列中;

所述日志汇总服务器用于创建多个与所述数据中心服务器中的消息队列相应的日志数据读取实例;还用于从第二预设时间起,以预设时间段为间隔依次开启创建的各个日志数据读取实例;还用于通过依次开启的日志数据读取实例分别从所述消息队列读取日志数据,将读取的日志数据持久化存储后,关闭已读取日志数据的日志数据读取实例,直至所述消息队列中的日志数据被读取完毕。

在其中一个实施例中,所述消息队列为多个;所述创建的各个日志数据读取实例与多个消息队列中的一个对应;所述日志汇总服务器还用于通过依次开启的日志数据读取实例分别从所对应的消息队列读取日志数据。

在其中一个实施例中,所述业务服务器还用于创建第一开关;当所述第一开关满足第一开启条件时,将所述第一开关置为开启状态,以加载用于连接所述数据中心服务器的第一配置文件,按照所述第一配置文件连接至所述数据中心服务器;所述业务服务器还用于在所述数据中心服务器出现异常时,将所述第一开关置为关闭状态,以断开与所述数据中心服务器的连接。

在其中一个实施例中,所述日志汇总服务器还用于创建第二开关;当所述第二开关满足第二开启条件时,将所述第二开关置为开启状态,以加载用于连接所述数据中心服务器的第二配置文件,按照所述第二配置文件连接所述数据中心服务器;所述日志汇总服务器还用于在出现异常时,将所述第二开关置为关闭状态,以断开与所述数据中心服务器的连接。

在其中一个实施例中,所述日志汇总服务器还用于在通过所述日志数据读取实例从所述消息队列队首成功读取日志数据时,向所述数据中心服务器反馈针对所述消息队列队首的日志数据读取成功的通知;所述数据中心服务器用于在接收到所述通知时,移除所述消息队列队首的日志数据。

在其中一个实施例中,所述数据中心服务器还用于获取接收的日志数据所包括的日志属性和相应的属性值;将多个日志数据各自包括的日志属性和相应的属性值进行拼合,组成日志消息;将组成的所述日志消息存入所述消息队列中;所述日志汇总服务器还用于从所述消息队列中读取到日志消息后,依据所述日志消息的组成方式,从读取到的日志消息拆分出日志属性和相应的属性值,以获得多个日志数据。

上述日志数据处理方法和系统,通过创建的多个日志数据读取实例从消息队列中读取日志数据,创建的多个日志数据读取实例,是从第二预设时间起,以预设时间段为间隔依次开启后从相应的消息队列中读取日志数据,通过多个日志数据读取实例来读取日志数据,能够缓解大大缓解接收日志数据的压力,进一步地,由于日志数据读取实例是依次开启的,相比于在同一时刻开启多个实例,能够降低日志汇总服务器宕机的风险,从而大大减少了日志数据被丢失的情况。

附图说明

图1为一个实施例中日志数据处理方法的应用场景图;

图2为一个实施例中日志数据处理方法的流程示意图;

图3为一个实施例中通过日志数据读取实例从相应的消息队列中读取日志数据的示意图;

图4为一个具体的实施例中日志数据处理方法的流程示意图;

图5为一个实施例中日志数据处理系统的架构示意图;

图6为一个实施例中日志数据处理装置的结构框图;

图7为另一个实施例中日志数据处理装置的结构框图;

图8为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的日志数据处理方法,可以应用于如图1所示的应用环境中。参照图1,该日志数据处理方法应用于日志数据处理系统100。该日志数据处理系统100包括业务服务器102、数据中心服务器104和日志汇总服务器106。其中,业务服务器102与数据中心服务器104通过网络进行连接,数据中心服务器104与日志汇总服务器通过网络进行连接。业务服务器102、数据中心服务器104或日志汇总服务器106可以用独立的服务器或者是多个服务器组成的服务器集群来实现。终端108可通过网络连接至日志数据处理系统100中的业务服务器102。业务服务器102可以有多个,分别用于接收终端108所处理的不同业务的日志数据。业务服务器102用于获取用户在终端上进行操作而产生的日志数据。终端108可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。

在一个实施例中,如图2所示,提供了一种日志数据处理方法,以该方法应用于图1中的日志汇总服务器为例进行说明,包括以下步骤:

s202,创建多个与数据中心服务器中的消息队列相应的日志数据读取实例。

其中,数据中心服务器用于临时保存业务数据发送的日志数据。数据中心服务器的处理速度远远大于日志汇总服务器。消息队列(messagequeue)是日志数据从业务服务器传输至日志汇总服务器的过程中用于临时存放日志数据的容器。通过数据中心服务器的消息队列来临时存放日志数据,能够将业务服务器发送日志数据与日志汇总服务器接收日志数据解耦。日志数据读取实例,是日志汇总服务器创建的用于从数据中心服务器的消息队列中读取日志数据的进程。一个日志数据读取实例与数据中心服务器中的一个消息队列对应,一个消息队列可以对应多个日志数据读取实例。

具体地,日志汇总服务器创建多个日志数据读取实例,用于从数据中心服务器读取日志数据,创建的多个日志数据读取实例,分别与数据中心服务器中的消息队列对应。比如,日志汇总系统可以创建18个日志数据读取实例,将这18个日志数据读取实例分配给数据中心服务器的消息队列,形成消息队列与日志数据读取实例之间一对多的关系。

在一个实施例中,数据中心服务器可创建多个消息队列,并按照接收日志数据的时间顺序,将接收的日志数据依次存入消息队列中。日志汇总服务器创建的多个日志数据读取实例分别与多个消息队列中的一个对应,每个日志数据读取实例从相应的消息队列中读取日志数据。

在一个实施例中,数据中心服务器可创建多个消息队列,不同的消息队列用于接收不同类别的日志数据;数据中心服务器在接收了日志数据后,将日志数据进行分类,按照日志数据的类别,分别存入与类别对应的消息队列中;日志汇总服务器创建的各个日志数据读取实例分别从相应的消息队列中获取到不同类别的日志数据,按照日志数据的类别对接收的日志数据进行存储,以方便查询日志数据。

在一个实施例中,日志汇总服务器创建的日志数据读取实例的个数可以和消息队列的个数相同,一个日志数据读取实例和一个消息队列对应,便于在日志数据读取过程出现异常时能够暂停当前消息队列中的日志数据的读取。日志数据读取实例的个数也可以大于消息队列的个数,也就是多个日志数据读取实例和一个消息队列对应,在当前日志数据读取实例读取日志数据的过程出现异常时,也能够通过其它日志数据读取实例继续读取当前消息队列中的日志数据。因而,日志数据读取实例的数量可以根据需要来进行配置,在此并不作限定。

s204,从第二预设时间起,以预设时间段为间隔依次开启创建的各个日志数据读取实例。

其中,第二预设时间是预设的日志汇总系统从数据中心服务器的消息队列中读取日志数据的时间。比如,为了能够高效地读取日志数据,第二预设时间可以是每天凌晨的某个时间,比如是凌晨3:00等。预设时间段是日志汇总系统开启创建的各个日志数据读取实例的间隔。预设时间段比如可以是1秒等。比如,每间隔1秒,日志汇总服务器按照顺序开启一个日志数据读取实例,能够缓解日志汇总服务器同时开启多个实例造成的服务器运行压力。

具体地,日志汇总服务器从第二预设时间起,以预设时间段为间隔依次开启创建的各个日志数据读取实例。举例说明:日志汇总服务器设定第二预设时间为今天凌晨3:00,并创建了10个日志数据读取实例从数据中心服务器的5个相应的消息队列中读取日志数据,预设时间间隔为1秒,那么,一旦到达凌晨3:00,日志汇总服务器在第一秒开启第一个日志数据读取实例,在第二秒开启第二个日志数据读取实例,在第n秒开启第n个日志数据读取实例,在第10秒开启第十个日志数据读取实例,在第11秒开启一第一个日志数据读取实例,依此循环。

在一个实施例中,日志汇总服务器可设置开启创建的各个日志数据读取实例的开启条件。比如,当日志汇总服务器当前的时间为第二预设时间时,就触发了开启条件,日志汇总服务器就可以预设时间段为间隔依次开启创建的各个日志数据读取实例。

在一个实施例中,日志汇总服务器可预先接收对日志数据的数量进行评估后的评估结果,依据接收到的评估结果来判定在设定的时间内是否能将消息队列中的数据读取完毕,当判定不能读取完毕时,就可以设定多个时间段,在多个时间段开启日志数据读取实例。

在一个实施例中,日志汇总服务器设定的预设时间段可根据当前的网络状态来相应地配置。比如,在日志汇总服务器当前的运行压力较大时,设定的预设时间段可以是稍长一些,减小单位时间内运行的进程数;在日志汇总服务器判定待读取的日志数据的数据较大时,设定的预设时间段可以稍短一些,以便尽量缩短读取日志数据的间隔。

s206,通过依次开启的日志数据读取实例分别从消息队列读取日志数据。

具体地,日志汇总服务器在第二预设时间,依次开启创建的各个日志数据读取实例,并通过依次开启的日志数据读取实例从数据中心服务器相应的消息队列中读取日志数据。

如图3所示,为一个实施例中通过日志数据读取实例从相应的消息队列中读取日志数据的示意图。从第二预设时间起,在第一秒通过日志数据读取实例301从相应的消息队列302的队首读取日志数据,在第二秒通过日志数据读取实例303从相应的消息队列304的队首读取日志数据,在第三秒通过日志数据读取实例305从相应的消息队列306的队首读取日志数据,该队首的日志数据被读取之后,消息队列306中在后的日志数据被移入消息队列306的队首,在第四秒,与消息队列306相应的日志数据读取实例307从消息队列的队首读取日志数据,以此类推。

s208,将读取的日志数据持久化存储后,关闭已读取日志数据的日志数据读取实例,直至消息队列中的日志数据被读取完毕。

其中,持久化存储是将日志数据存储到可永久保存的存储设备中,比如将日志数据存储到数据库中。具体地,日志汇总服务器通过当前开启的日志数据读取实例从消息队列中读取了日志数据后,将读取的日志数据持久化存储至数据库中后,关闭当前已读取日志数据的日志数据读取实例,通过下一个开启的日志数据读取实例从相应的消息队列中读取日志数据,直至消息队列中的日志数据被读取完毕。

在一个实施例中,业务服务器在获取到日志数据后,将日志数据存储在本地,并在到达第一预设时间时将存储的日志数据发送数据中心服务器,数据中心服务器将接收的日志数据存入消息队列中,日志汇总服务器在第二预设时间通过开启的日志数据读取实例依次从相应的消息队列中读取日志数据。由此,数据中心服务器将业务服务器与日志汇总服务器之间的数据存储过程实现了解耦,也就是不需要再去实时地接收业务服务器发送的日志数据,能够在自身运行能力或网络传输速率较好的情况下,对日志数据进行异步处理。

上述日志数据处理方法,通过创建的多个日志数据读取实例从消息队列中读取日志数据,创建的多个日志数据读取实例,是从第二预设时间起,以预设时间段为间隔依次开启后从相应的消息队列中读取日志数据,通过多个日志数据读取实例来读取日志数据,能够缓解大大缓解接收日志数据的压力,进一步地,由于日志数据读取实例是依次开启的,相比于在同一时刻开启多个实例,能够降低日志汇总服务器宕机的风险,从而大大减少了日志数据被丢失的情况。

在一个实施例中,日志数据处理方法还包括以下步骤:创建第二开关;当第二开关满足第二开启条件时,将第二开关置为开启状态,以加载用于连接数据中心服务器的第二配置文件,按照第二配置文件连接数据中心服务器;当出现异常时,将第二开关置为关闭状态,以断开与数据中心服务器的连接。

其中,第二开关用于日志汇总服务器与数据中心服务器进行连接或断开与数据中心服务器的连接。具体地,在正常情况下,日志汇总服务器是连接至数据中心服务器的,以便能在到达第二预设时间时,能够通过开启的日志数据读取实例从数据中心服务器的消息队列中读取日志数据,只有在日志数据服务器出现异常时,比如运行压力过大导致服务器宕机,或者无法将日志数据存入数据库时,为避免读取失败后造成日志数据丢失,日志汇总服务器就会将第二开关置为关闭状态,以断开与数据中心服务器的连接,从而暂停从数据中心服务器读取日志数据。

在本实施例中,日志汇总服务器通过创建的第二开关控制与数据中心服务器的连接与否,能够在出现异常时,及时断开与数据中心服务器的连接,从而暂停从数据中心服务器读取日志数据,能够减少日志汇总服务器宕机造成的日志数据丢失的情况。

在一个实施例中,日志数据处理方法还包括以下步骤:在通过日志数据读取实例从消息队列队首成功读取日志数据时,向数据中心服务器反馈针对消息队列队首的日志数据读取成功的通知;通知用于指示数据中心服务器在接收到通知时,移除消息队列队首的日志数据。

具体地,日志汇总服务器通过开启的日志数据读取实例从相应的消息队列的队首成功读取日志数据时,就向数据中心服务器反馈针对该日志数据读取成功的通知,数据中心服务器在接收到该通知时,就将该消息队列中已被日志汇总服务器读取的日志数据从队首移除。相应地,在数据中心服务器没有接收到该通知时,就将该日志数据继续保留在消息队列的队首,以便日志汇总系统继续读取该日志数据,能够减少日志数据读取失败被丢失的情况。

在一个实施例中,数据中心服务器可在为接收的日志数据添加相应的时间戳后,将添加了时间戳的日志数据存入消息队列中。每条日志数据的时间戳都是不一样的。日志汇总服务器可通过日志数据的时间戳对接收的日志数据进行去重处理后,再将日志数据进行持久化存储,能够节省存储空间资源。

在本实施例中,通过反馈是否成功读取了日志数据的通知,能够指示数据中心服务器是否将该日志数据从消息队列的队首移除,能够减少日志数据读取失败被丢失的情况。

在一个实施例中,日志数据处理方法还包括以下步骤:从消息队列中读取到日志消息后,依据日志消息的组成方式,从读取到的日志消息拆分出日志属性和相应的属性值,以获得多个日志数据。

其中,日志消息是将日志数据以预设的组成方式封装而成的一个数据包。一条日志消息可以包括多个日志数据。具体地,数据中心服务器可与日志汇总服务器基于数据传输协议将发送的或接收到的日志消息按照组成方式进行拆分,得到日志数据。这样,就能避免将每个日志数据以每条消息的形式推送,节约读取日志数据的时间。

日志数据包括日志属性和与该日志属性相应的属性值。日志属性是将日志记录的特征以数据的形式进行表示的方式。日志属性比如可以是日志的创建时间,相应的属性值就是具体的时间。

在一个实施例中,数据中心服务器在接收到业务服务器发送的日志数据后,将多条日志数据以预设的组成方式封装成一个日志消息,将得到的日志消息存入消息队列中,这样日志汇总服务器在通过日志数据读取实例读取到日志消息后,就可以将读取到的日志消息按照预设的组成方式进行拆分,得到多个日志数据。

在本实施例中,通过将接收到的日志消息按照预设的组成方式进行拆分,可以得到多条日志数据,能够提高读取日志数据的效率。

如图4所示,在一个具体的实施例中,日志数据处理方法包括以下步骤:

s402,创建第二开关。

s404,当第二开关满足第二开启条件时,将第二开关置为开启状态,以加载用于连接数据中心服务器的第二配置文件,按照第二配置文件连接数据中心服务器。

s406,创建多个与数据中心服务器中的消息队列相应的日志数据读取实例。

s408,从第二预设时间起,以预设时间段为间隔依次开启创建的各个日志数据读取实例。

s410,通过依次开启的日志数据读取实例分别从消息队列读取日志数据。

s412,在通过日志数据读取实例从消息队列队首成功读取日志数据时,向数据中心服务器反馈针对消息队列队首的日志数据读取成功的通知;通知用于指示数据中心服务器在接收到通知时,移除消息队列队首的日志数据。

s414,从消息队列中读取到日志消息后,依据日志消息的组成方式,从读取到的日志消息拆分出日志属性和相应的属性值,以获得多个日志数据。

s416,将读取的日志数据持久化存储后,关闭已读取日志数据的日志数据读取实例,直至消息队列中的日志数据被读取完毕。

上述日志数据处理方法,通过创建的多个日志数据读取实例从消息队列中读取日志数据,创建的多个日志数据读取实例,是从第二预设时间起,以预设时间段为间隔依次开启后从相应的消息队列中读取日志数据,通过多个日志数据读取实例来读取日志数据,能够缓解大大缓解接收日志数据的压力,进一步地,由于日志数据读取实例是依次开启的,相比于在同一时刻开启多个实例,能够降低日志汇总服务器宕机的风险,从而大大减少了日志数据被丢失的情况。

应该理解的是,虽然图2、图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

如图5所示,在一个实施例中,提供了一种日志数据处理系统500,包括业务服务器502、数据中心服务器504和日志汇总服务器506。

业务服务器,用于获取日志数据,并将获取的日志数据存储在本地;还用于在第一预设时间将存储的日志数据发送至数据中心服务器。

其中,业务服务器获取终端在处理与该业务对应的数据时上传的日志数据。业务服务器可以有多个。比如,a集团对应的业务服务器有18个,同一个终端在处理不同业务数据的日志数据就会分别上传至对应的业务服务器。又比如,用户在终端登录处理贷款业务的网站产生的日志数据就会上传至贷款业务服务器,用户通过终端登录处理租赁业务的网站产生的日志数据就会上传至租赁业务服务器。

第一预设时间是业务服务器预设的将获取的日志数据发送至数据中心服务器的时间。第一预设时间可以包括多个时间段。为了避免业务服务器将产生的日志数据实时地发送至数据中心服务器,降低业务服务器的运行效率,因而可以在到达第一预设时间时将日志数据发送至数据中心服务器。第一预设时间比如可以是凌晨的某个时间,比如凌晨的1:00~3:00等。

具体地,业务服务器获取用户操作终端时产生的日志数据,将获取的日志数据存储在本地,并在到达第一预设时间时,将存储的日志数据发送至数据中心服务器。

在一个具体的应用场景中,业务服务器在将今天产生的日志数据存储到本地后,在第二天凌晨的某个时间将存储的日志数据发生至数据中心服务器504,并在5天之后将存储的今天的日志数据删除,依次循环,为后续每一天产生的日志数据提供存储空间。

数据中心服务器,用于接收业务服务器发送的日志数据,并将接收的日志数据存入消息队列中。

具体地,数据中心服务器在接收到业务服务器发送的日志数据后,将接收的日志存入消息队列中。其中,消息队列(messagequeue)是日志数据从业务服务器传输至日志汇总服务器的过程中用于临时存放日志数据的容器。通过数据中心服务器的消息队列来临时存放日志数据,能够将业务服务器发送日志数据与日志汇总服务器接收日志数据解耦。

在一个实施例中,数据中心服务器可创建多个消息队列,并按照接收日志数据的时间顺序,将接收的日志数据依次存入消息队列中。

在一个实施例中,数据中心服务器可创建多个消息队列,不同的消息队列用于接收不同类别的日志数据;数据中心服务器在接收了日志数据后,将日志数据进行分类,按照日志数据的类别,分别存入与类别对应的消息队列中。

日志汇总服务器,用于创建多个与数据中心服务器中的消息队列相应的日志数据读取实例;还用于从第二预设时间起,以预设时间段为间隔依次开启创建的各个日志数据读取实例;还用于通过依次开启的日志数据读取实例分别从消息队列读取日志数据,将读取的日志数据持久化存储后,关闭已读取日志数据的日志数据读取实例,直至消息队列中的日志数据被读取完毕。

其中,日志数据读取实例,是日志汇总服务器创建的用于从数据中心服务器的消息队列中读取日志数据的进程。一个日志数据读取实例与数据中心服务器中的一个消息队列对应,一个消息队列可以对应多个日志数据读取实例。

第二预设时间是预设的日志汇总系统从数据中心服务器的消息队列中读取日志数据的时间。比如,为了能够高效地读取日志数据,第二预设时间可以是每天凌晨的某个时间,比如是凌晨3:00等。预设时间段是日志汇总系统开启创建的各个日志数据读取实例的间隔。预设时间段比如可以是1秒等。比如,每间隔1秒,日志汇总服务器按照顺序开启一个日志数据读取实例,能够缓解日志汇总服务器同时开启多个实例造成的服务器运行压力。

具体地,日志汇总服务器创建多个日志数据读取实例,用于从数据中心服务器读取日志数据,创建的多个日志数据读取实例,分别与数据中心服务器中的消息队列对应。比如,日志汇总系统可以创建18个日志数据读取实例,将这18个日志数据读取实例分配给数据中心服务器的消息队列,形成消息队列与日志数据读取实例之间一对多的关系。日志汇总服务器从第二预设时间起,以预设时间段为间隔依次开启创建的各个日志数据读取实例,并通过依次开启的日志数据读取实例从数据中心服务器相应的消息队列中读取日志数据,将读取的日志数据持久化存储至数据库中后,关闭当前已读取日志数据的日志数据读取实例,通过下一个开启的日志数据读取实例从相应的消息队列中读取日志数据,直至消息队列中的日志数据被读取完毕。

上述日志数据处理系统500,通过创建的多个日志数据读取实例从消息队列中读取日志数据,创建的多个日志数据读取实例,是从第二预设时间起,以预设时间段为间隔依次开启后从相应的消息队列中读取日志数据,通过多个日志数据读取实例来读取日志数据,能够缓解大大缓解接收日志数据的压力,进一步地,由于日志数据读取实例是依次开启的,相比于在同一时刻开启多个实例,能够降低日志汇总服务器宕机的风险,从而大大减少了日志数据被丢失的情况。

在一个实施例中,日志数据处理系统500中的业务服务器502还用于创建第一开关;当第一开关满足第一开启条件时,将第一开关置为开启状态,以加载用于连接数据中心服务器504的第一配置文件,按照第一配置文件连接至数据中心服务器504;业务服务器502还用于在数据中心服务器504出现异常时,将第一开关置为关闭状态,以断开与数据中心服务器504的连接。

其中,第一开关用于业务服务器与数据中心服务器进行连接或断开与数据中心服务器的连接。具体地,在正常情况下,业务服务器是连接至数据中心服务器的,以便能在到达第一预设时间时,能够将存储在本地的日志数据发送至数据中心服务器,只有在数据中心服务器出现异常时,为避免日志数据发送失败后造成日志数据丢失,业务服务器就会将第一开关置为关闭状态,以断开与数据中心服务器的连接,从而暂停向数据中心服务器发送日志数据。

在本实施例中,业务服务器通过创建的第一开关控制与数据中心服务器的连接与否,能够在出现异常时,及时断开与数据中心服务器的连接,从而暂停向数据中心服务器发送日志数据,能够减少日志数据丢失的情况。

在一个实施例中,日志数据处理系统500中的日志汇总服务器还用于创建第二开关;当第二开关满足第二开启条件时,将第二开关置为开启状态,以加载用于连接数据中心服务器504的第二配置文件,按照第二配置文件连接数据中心服务器504;日志汇总服务器506还用于在出现异常时,将第二开关置为关闭状态,以断开与数据中心服务器504的连接。

其中,第二开关用于日志汇总服务器与数据中心服务器进行连接或断开与数据中心服务器的连接。具体地,在正常情况下,日志汇总服务器是连接至数据中心服务器的,以便能在到达第二预设时间时,能够通过开启的日志数据读取实例从数据中心服务器的消息队列中读取日志数据,只有在日志数据服务器出现异常时,比如运行压力过大导致服务器宕机,或者无法将日志数据存入数据库时,为避免读取失败后造成日志数据丢失,日志汇总服务器就会将第二开关置为关闭状态,以断开与数据中心服务器的连接,从而暂停从数据中心服务器读取日志数据。

在本实施例中,日志汇总服务器通过创建的第二开关控制与数据中心服务器的连接与否,能够在出现异常时,及时断开与数据中心服务器的连接,从而暂停从数据中心服务器读取日志数据,能够减少日志汇总服务器宕机造成的日志数据丢失的情况。

在一个实施例中,日志数据处理系统500中的日志汇总服务器506还用于在通过日志数据读取实例从消息队列队首成功读取日志数据时,向数据中心服务器504反馈针对消息队列队首的日志数据读取成功的通知;数据中心服务器506用于在接收到通知时,移除消息队列队首的日志数据。

具体地,日志汇总服务器通过开启的日志数据读取实例从相应的消息队列的队首成功读取日志数据时,就向数据中心服务器反馈针对该日志数据读取成功的通知,数据中心服务器在接收到该通知时,就将该消息队列中已被日志汇总服务器读取的日志数据从队首移除。相应地,在数据中心服务器没有接收到该通知时,就将该日志数据继续保留在消息队列的队首,以便日志汇总系统继续读取该日志数据,能够减少日志数据读取失败被丢失的情况。

在一个实施例中,数据中心服务器可在为接收的日志数据添加相应的时间戳后,将添加了时间戳的日志数据存入消息队列中。每条日志数据的时间戳都是不一样的。日志汇总服务器可通过日志数据的时间戳对接收的日志数据进行去重处理后,再将日志数据进行持久化存储,能够节省存储空间资源。

在本实施例中,通过反馈是否成功读取了日志数据的通知,能够指示数据中心服务器是否将该日志数据从消息队列的队首移除,能够减少日志数据读取失败被丢失的情况。

在一个实施例中,日志数据处理系统500中的数据中心服务器504还用于获取接收的日志数据所包括的日志属性和相应的属性值;将多个日志数据各自包括的日志属性和相应的属性值进行拼合,组成日志消息;将组成的日志消息存入消息队列中;日志汇总服务器506还用于从消息队列中读取到日志消息后,依据日志消息的组成方式,从读取到的日志消息拆分出日志属性和相应的属性值,以获得多个日志数据。

其中,日志消息是将日志数据以预设的组成方式封装而成的一个数据包。一条日志消息可以包括多个日志数据。具体地,数据中心服务器在接收到业务服务器发送的日志数据后,将多条日志数据以预设的组成方式封装成一个日志消息,将得到的日志消息存入消息队列中,这样日志汇总服务器在通过日志数据读取实例读取到日志消息后,就可以将读取到的日志消息按照预设的组成方式进行拆分,得到多个日志数据。数据中心服务器可与日志汇总服务器基于数据传输协议将发送的或接收到的日志消息按照组成方式进行拆分,得到日志数据。这样,就能避免将每个日志数据以每条消息的形式推送,节约读取日志数据的时间。

日志数据包括日志属性和与该日志属性相应的属性值。日志属性是将日志记录的特征以数据的形式进行表示的方式。日志属性比如可以是日志的创建时间,相应的属性值就是具体的时间。

在本实施例中,通过将接收到的日志消息按照预设的组成方式进行拆分,可以得到多条日志数据,能够提高读取日志数据的效率。

在一个实施例中,如图6所示,提供了一种日志数据处理装置600,包括:实例创建模块、实例开启模块、日志数据读取模块和日志数据存储模块,其中:

实例创建模块602,用于创建多个与数据中心服务器中的消息队列相应的日志数据读取实例。

实例开启模块604,用于从第二预设时间起,以预设时间段为间隔依次开启创建的各个日志数据读取实例。

日志数据读取模块606,用于通过依次开启的日志数据读取实例分别从消息队列读取日志数据。

日志数据存储模块608,用于将读取的日志数据持久化存储后,关闭已读取日志数据的日志数据读取实例,直至消息队列中的日志数据被读取完毕。

上述日志数据处理装置,通过创建的多个日志数据读取实例从消息队列中读取日志数据,创建的多个日志数据读取实例,是从第二预设时间起,以预设时间段为间隔依次开启后从相应的消息队列中读取日志数据,通过多个日志数据读取实例来读取日志数据,能够缓解大大缓解接收日志数据的压力,进一步地,由于日志数据读取实例是依次开启的,相比于在同一时刻开启多个实例,能够降低日志汇总服务器宕机的风险,从而大大减少了日志数据被丢失的情况。

如图7所示,在一个实施例中,上述日志数据处理装置600还包括反馈模块702。反馈模块702用于在通过日志数据读取实例从消息队列队首成功读取日志数据时,向数据中心服务器反馈针对消息队列队首的日志数据读取成功的通知;通知用于指示数据中心服务器在接收到通知时,移除消息队列队首的日志数据。

在本实施例中,在本实施例中,通过反馈是否成功读取了日志数据的通知,能够指示数据中心服务器是否将该日志数据从消息队列的队首移除,能够减少日志数据读取失败被丢失的情况。

关于日志数据处理装置的具体限定可以参见上文中对于日志数据处理方法的限定,在此不再赘述。上述日志数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储日志数据。该计算机设备的网络接口用于与外部的服务器通过网络连接通信。该计算机程序被处理器执行时以实现一种日志数据处理方法。

本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:创建多个与数据中心服务器中的消息队列相应的日志数据读取实例;从第二预设时间起,以预设时间段为间隔依次开启创建的各个日志数据读取实例;通过依次开启的日志数据读取实例分别从消息队列读取日志数据;将读取的日志数据持久化存储后,关闭已读取日志数据的日志数据读取实例,直至消息队列中的日志数据被读取完毕。

在一个实施例中,消息队列为多个;创建的各个日志数据读取实例与多个消息队列中的一个对应;处理器执行计算机程序时还实现以下步骤:通过依次开启的日志数据读取实例分别从所对应的消息队列读取日志数据。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:创建第二开关;当第二开关满足第二开启条件时,将第二开关置为开启状态,以加载用于连接数据中心服务器的第二配置文件,按照第二配置文件连接数据中心服务器;当出现异常时,将第二开关置为关闭状态,以断开与数据中心服务器的连接。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:在通过日志数据读取实例从消息队列队首成功读取日志数据时,向数据中心服务器反馈针对消息队列队首的日志数据读取成功的通知;通知用于指示数据中心服务器在接收到通知时,移除消息队列队首的日志数据。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:从消息队列中读取到日志消息后,依据日志消息的组成方式,从读取到的日志消息拆分出日志属性和相应的属性值,以获得多个日志数据。

上述计算机设备,通过创建的多个日志数据读取实例从消息队列中读取日志数据,创建的多个日志数据读取实例,是从第二预设时间起,以预设时间段为间隔依次开启后从相应的消息队列中读取日志数据,通过多个日志数据读取实例来读取日志数据,能够缓解大大缓解接收日志数据的压力,进一步地,由于日志数据读取实例是依次开启的,相比于在同一时刻开启多个实例,能够降低日志汇总服务器宕机的风险,从而大大减少了日志数据被丢失的情况。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:创建多个与数据中心服务器中的消息队列相应的日志数据读取实例;从第二预设时间起,以预设时间段为间隔依次开启创建的各个日志数据读取实例;通过依次开启的日志数据读取实例分别从消息队列读取日志数据;将读取的日志数据持久化存储后,关闭已读取日志数据的日志数据读取实例,直至消息队列中的日志数据被读取完毕。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:创建第二开关;当第二开关满足第二开启条件时,将第二开关置为开启状态,以加载用于连接数据中心服务器的第二配置文件,按照第二配置文件连接数据中心服务器;当出现异常时,将第二开关置为关闭状态,以断开与数据中心服务器的连接。

在一个实施例中,消息队列为多个;创建的各个日志数据读取实例与多个消息队列中的一个对应;处理器执行计算机程序时还实现以下步骤:通过依次开启的日志数据读取实例分别从所对应的消息队列读取日志数据。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:在通过日志数据读取实例从消息队列队首成功读取日志数据时,向数据中心服务器反馈针对消息队列队首的日志数据读取成功的通知;通知用于指示数据中心服务器在接收到通知时,移除消息队列队首的日志数据。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:从消息队列中读取到日志消息后,依据日志消息的组成方式,从读取到的日志消息拆分出日志属性和相应的属性值,以获得多个日志数据。

上述计算机可读存储介质,通过创建的多个日志数据读取实例从消息队列中读取日志数据,创建的多个日志数据读取实例,是从第二预设时间起,以预设时间段为间隔依次开启后从相应的消息队列中读取日志数据,通过多个日志数据读取实例来读取日志数据,能够缓解大大缓解接收日志数据的压力,进一步地,由于日志数据读取实例是依次开启的,相比于在同一时刻开启多个实例,能够降低日志汇总服务器宕机的风险,从而大大减少了日志数据被丢失的情况。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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