本发明涉及数据监控领域,具体而言,涉及一种监控数据处理方法、装置和监控服务器。
背景技术:
对于各个被监控对象的监控主要是通过被监控对象向监控服务器发送监控数据来实现的,监控服务器对接收到的监控数据进行分析处理,确定出各被监控对象的情况。在监控过程中,被监控对象通常会定时发送全量的监控数据给监控服务器,然而,发明人发现,每个被监控对象的大多数数据是不发生变化的,由于每次都将全量的监控数据发送给监控服务器,导致监控服务器每次处理的数据量非常大,从而影响监控服务器的处理效率。
针对上述的问题,目前尚未提出有效的解决方案。
技术实现要素:
本发明实施例提供了一种监控数据处理方法、装置和监控服务器,以至少解决由于被监控对象每次将全量的监控数据发送给监控服务器造成的监控服务器处理的数据量大的技术问题。
根据本发明实施例的一个方面,提供了一种监控数据处理方法,包括:监控服务器接收被监控对象发送的第一监控数据,其中,所述监控服务器用于监控所述被监控对象的多组数据,所述第一监控数据为所述多组数据中的至少一组数据;所述监控服务器依据接收到的第一监控数据,查询是否存在缺失的数据组;以及若是,则所述监控服务器向所述被监控对象返回携带有预设标识的应答消息,以使所述被监控对象收到所述应答消息后将所述预设标识对应的数据组发送给所述监控服务器,其中,所述预设标识为所述多组数据中所述监控服务器上缺失的数据组对应的标识,所述多组数据中每一组数据对应一个标识。
进一步,在监控服务器接收被监控对象发送的第一监控数据之后,所述方法还包括:所述监控服务器查询本地是否存在所述被监控对象的记录;当查询到存在所述被 监控对象的记录时,所述监控服务器用所述第一监控数据更新在所述监控服务器本地对应的数据组;当查询到不存在所述被监控对象的记录时,所述监控服务器创建所述被监控对象的记录,并用所述第一监控数据更新在所述监控服务器本地对应的数据组。
进一步,所述方法还包括:当所述监控服务器查询出不存在缺失的数据组时,则向所述被监控对象返回空的应答消息。
进一步,所述方法还包括:在所述监控服务器丢失第二监控数据的情况下,所述监控服务器将所述第二监控数据对应的标识发送至所述被监控对象,以使所述被监控对象依据所述第二监控数据对应的标识向所述监控服务器发送所述第二监控数据,其中,所述第二监控数据为所述多组数据中至少一组数据。
根据本发明实施例的另一方面,还提供了一种监控数据处理方法,包括:被监控对象向监控服务器发送第一监控数据,以使所述监控服务器在接收到所述第一监控数据之后向所述被监控对象返回应答消息,其中,所述监控服务器用于监控所述被监控对象的多组数据,所述第一监控数据为所述多组数据中的至少一组数据,所述多组数据中每一组数据对应一个标识;所述被监控对象接收所述应答消息,若所述应答消息中携带预设标识,则将所述预设标识对应的数据组发送给所述监控服务器,其中,所述预设标识为所述多组数据中所述监控服务器上缺失的数据组对应的标识。
进一步,所述方法还包括:所述被监控对象记录所述多组数据中每一组数据的更新状态,所述更新状态包括第一状态和第二状态,其中,第一状态表示数据已经发送至所述监控服务器,所述第二状态表示数据未发送至所述监控服务器。
进一步,在被监控对象向监控服务器发送第一监控数据之后,所述方法还包括:所述被监控对象将所述第一监控数据对应的数据组的更新状态由所述第二装态变更为所述第一状态。
进一步,所述方法还包括:所述被监控对象接收来自所述监控服务器的第二监控数据对应的标识,其中,所述第二监控数据为所述监控服务器丢失的所述多组数据中至少一组数据;所述被监控对象依据所述第二监控数据对应的标识向所述监控服务器发送所述第二监控数据。
根据本发明实施例的另一方面,还提供了一种监控服务器,包括:接收单元,用于接收被监控对象发送的第一监控数据,其中,监控服务器用于监控所述被监控对象的多组数据,所述第一监控数据为所述多组数据中的至少一组数据;第一查询单元,用于依据接收到的第一监控数据,查询是否存在缺失的数据组;以及应答单元,用于当查询出存在缺失的数据组时,向所述被监控对象返回携带有预设标识的应答消息, 以使所述被监控对象收到所述应答消息后将所述预设标识对应的数据组发送给所述监控服务器,其中,所述预设标识为所述多组数据中所述监控服务器上缺失的数据组对应的标识,所述多组数据中每一组数据对应一个标识。
进一步,所述监控服务器还包括:第二查询单元,用于在接收被监控对象发送的第一监控数据之后,查询所述监控服务器本地是否存在所述被监控对象的记录;更新单元,用于当查询到存在所述被监控对象的记录时,用所述第一监控数据更新在所述监控服务器本地对应的数据组;当查询到不存在所述被监控对象的记录时,所述监控服务器创建所述被监控对象的记录,并用所述第一监控数据更新在所述监控服务器本地对应的数据组。
进一步,所述应答单元还用于当所述监控服务器查询出不存在缺失的数据组时,则向所述被监控对象返回空的应答消息。
进一步,所述监控服务器还包括:发送单元,用于在丢失第二监控数据的情况下,将所述第二监控数据对应的标识发送至所述被监控对象,以使所述被监控对象依据所述第二监控数据对应的标识向所述监控服务器发送所述第二监控数据,其中,所述第二监控数据为所述多组数据中至少一组数据。
根据本发明实施例的另一方面,还提供了一种监控数据处理装置,所述监控数据处理装置设置在被监控对象上,所述监控数据处理装置包括:第一发送单元,用于向监控服务器发送第一监控数据,以使所述监控服务器在接收到所述第一监控数据之后向所述被监控对象返回应答消息,其中,所述监控服务器用于监控所述被监控对象的多组数据,所述第一监控数据为所述多组数据中的至少一组数据,所述多组数据中每一组数据对应一个标识;第一接收单元,用于接收所述应答消息,若所述应答消息中携带预设标识,则将所述预设标识对应的数据组发送给所述监控服务器,其中,所述预设标识为所述多组数据中所述监控服务器上缺失的数据组对应的标识。
进一步,所述装置还包括:记录单元,用于记录所述多组数据中每一组数据的更新状态,所述更新状态包括第一状态和第二状态,其中,第一状态表示数据已经发送至所述监控服务器,所述第二状态表示数据未发送至所述监控服务器。
进一步,所述装置还包括:变更单元,用于在向监控服务器发送第一监控数据之后,将所述第一监控数据对应的数据组的更新状态由所述第二状态变更为所述第一状态。
进一步,所述装置还包括:第二接收单元,用于接收来自所述监控服务器的第二监控数据对应的标识,其中,所述第二监控数据为所述监控服务器丢失的所述多组数 据中至少一组数据;第二发送单元,用于依据所述第二监控数据对应的标识向所述监控服务器发送所述第二监控数据。
根据本申请实施例,监控服务器接收到来自被监控对象的第一监控数据之后,查询本地是否存在缺失的数据组,如果存在,则向该被监控对象返回携带有预设标识的应答消息,以告知被监控对象还有哪些组的数据监控服务器未接收到,客户端在接收到应答消息之后,按照应答消息中携带的预设标识将预设标识对应的数据组发送至监控服务器,无需将全量的监控数据发送至监控服务器,解决了由于被监控对象每次将全量的监控数据发送给监控服务器造成的监控服务器处理的数据量大的技术问题,达到了减少数据传输和降低监控服务器数据处理量的技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明第一实施例的监控数据处理方法的示意图;
图2是根据本发明第二实施例的监控数据处理方法的示意图;
图3是根据本发明实施例的监控服务器的示意图;以及
图4是根据本发明实施例的监控数据处理装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚 地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种监控数据处理方法的方法实施例,该方法可以由本发明实施例的监控服务器来执行。需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的监控数据处理方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,监控服务器接收被监控对象发送的第一监控数据。其中,监控服务器用于监控被监控对象的多组数据,第一监控数据为多组数据中的至少一组数据。
步骤S103,监控服务器依据接收到的第一监控数据,查询是否存在缺失的数据组。
步骤S104,若存在缺失的数据组,则监控服务器向被监控对象返回携带有预设标识的应答消息,以使被监控对象收到应答消息后将预设标识对应的数据组发送给监控服务器,其中,预设标识为多组数据中监控服务器上缺失的数据组对应的标识,多组数据中每一组数据对应一个标识。
监控服务器对被监控对象的监控数据为多组数据,该多组数据可以是根据被监控对象的多个指标所划分得到的多组数据,也即是被监控对象与监控服务器双方预先约定的被监控对象所提供的固定几组数据,第一监控数据可以是上述多组数据中的一组数据,也可以是上述多组数据中的几组数据。多组数据中每一组数据构成一个数据组,每一组数据对应一个标识。当监控服务器接收到上述多组数据中每一组数据,则表明监控服务器接收到了全量的监控数据,如果监控服务器发现其中部分标识在本地没有对应的数据时,则表明这些数据缺失,因此需要被监控对象重新发送这部分数据。
例如,将被监控对象的监控数据分为A、B、C和D四个组,其中,A组数据对应的标识为“A”,B组数据对应的标识为“B”,C组数据对应的标识为“C”,D组数据对应的标识为“D”。如果监控服务器接收到标识“A”和“B”对应的数据组,而查询出本地上标识“C”和“D”对应的数据组缺失,则将标识“C”和“D”添加到应答消息中并返回给被监控对象,被监控对象则将该缺失的数据组发送至监控服务器。
监控服务器在接收到第一监控数据之后,如果还存在缺失的数据组,则以应答消息的方式将这些缺失的数据组对应的标识(也即是预设标识)发送给被监控对象。其中,缺失的数据组可以是一组或者多组,相应地,预设标识可以是一个或多个。当缺 失的数据组为多组的时候,被监控对象可以将多组数据分多次发送给监控服务器,一次发送一组数据。
由于被监控对象在向监控服务器发送数据的过程中,并不是所有发送的数据都能够准确达到监控服务器,监控服务器上的数据也可能丢失,而这些都会造成监控服务器缺失监控数据,因此,本实施例中,监控服务器在每次接收到被监控对象发送的数据时,都查询该被监控对象在监控服务器本地是否存在缺失的数据组,如果是,则返回携带有缺失的数据组对应的标识的应答消息给被监控对象,以使该被监控对象将这些缺失的数据重新发送至监控服务器。需要说明的是,这里的“缺失的数据组”是指监控服务器本地不存在的数据组,以上述将被监控对象的监控数据分为A、B、C和D四个组为例,在监控服务器已经接收到上述四组数据之后,如果被监控对象上的A组数据发生变化,则被监控对象将变化后的A组数据发送给监控服务器以使监控服务器更新A组数据,监控服务器接收到A组数据之后,查询本地发现B、C和D三组数据均未缺失,则可以向被监控对象返回空的应答消息。
根据本申请实施例,监控服务器接收到来自被监控对象的第一监控数据之后,查询本地是否存在缺失的数据组,如果存在,则向该被监控对象返回携带有预设标识的应答消息,以告知被监控对象还有哪些组的数据监控服务器未接收到,客户端在接收到应答消息之后,按照应答消息中携带的预设标识将预设标识对应的数据组发送至监控服务器,无需将全量的监控数据发送至监控服务器,解决了由于被监控对象每次将全量的监控数据发送给监控服务器造成的监控服务器处理的数据量大的技术问题,达到了减少数据传输和降低监控服务器数据处理量的技术效果。
每个被监控对象的监控数据可以是固定的几个组,每个组都有各自的标识。比如被监控对象的监控数据由组A、组B、组C、组D组成,那么监控服务器接收到每个组数据,其监控数据就是完整的。被监控对象将监控数据划分成几个组,每组数据最少发送一次,在此之后,当这些组的数据发生变化的情况下才会再次发送,将发生变化的数据信息发送给监控服务器。
优选地,在监控服务器接收被监控对象发送的第一监控数据之后,方法还包括:监控服务器查询本地是否存在被监控对象的记录;当查询到存在被监控对象的记录时,监控服务器用第一监控数据更新在监控服务器本地对应的数据组;当查询到不存在被监控对象的记录时,监控服务器创建被监控对象的记录,并用第一监控数据更新在监控服务器本地对应的数据组。
监控服务器所监控的被监控对象可以是一个或者多个,监控服务器如果第一次收到被监控对象发送的数据时,则监控服务器本地可能不存在该被监控对象的相关记录, 因此,在接收到第一监控数据之后,查询监控服务器本地是否存在被监控对象的记录,如果存在,利用接收到的第一监控数据更新相应的数据组;反之,则创建该被监控对象的记录,利用第一监控数据更新记录中相应的数据组。
具体地,被监控对象发到监控服务器的监控数据中,可以携带有被监控对象自身的身份标识(identification,简称为ID),每个组的数据携带有组标识,就像上面举例的A、B、C、D就是组标识。举例来说,监控服务器从收到的监控数据中可以看出,来自ID=1的被监控对象的监控数据,包含组A、B,或者来自ID=3的被监控对象的监控数据,包含组C。根据这些监控数据,监控服务器就能正确识别每个被监控对象的数据,并进行统计分析。
如果某个被监控对象(比如ID=1的被监控对象)之前已经发送过某个组的数据(比如组A)给监控服务器,后来又发送了一次相同的组(组A)的数据,那么说明这个组的数据有更新,监控服务器应该以后来接收到的数据为准,更新相应的数据(这个例子中是ID=1的组A数据)。
本发明实施例中,通过被监控对象的记录以及数据组的标识能够准确有效地识别监控数据属于哪个被监控对象的哪组数据。
优选地,方法还包括:当监控服务器查询出不存在缺失的数据组时,则向被监控对象返回空的应答消息。
监控服务器在接收到被监控对象发送的第一监控数据之后,查询本地是否存在缺失的数据组,该缺失的数据组可以是该被监控对象未发送至监控服务器或者监控服务器丢失的数据组,其对应的标识为上述预设标识。如果存在的话,则可以将上述预设标识添加到应答消息中,以便于将携带有该预设标识的应答消息发送至被监控对象;反之,则向被监控对象返回空消息。
优选地,方法还包括:在监控服务器丢失第二监控数据的情况下,监控服务器将第二监控数据对应的标识发送至被监控对象,其中,以使被监控对象依据第二监控数据对应的标识向监控服务器发送第二监控数据,其中,第二监控数据为多组数据中至少一组数据。
本发明实施例中,监控服务器上被监控对象的监控数据会有丢失的情况,例如,服务器宕机重启等等,此时监控服务器可以将丢失的数据组对应的标识发送至该被监控对象,其中,该被监控对象接收到监控服务器发送的上述标识之后,将上述标识对应的数据发送至监控服务器。
具体地,如果监控服务器因为某种原因失去了原来收到过的数据,只需通过返回 值告诉被监控对象,那么被监控对象就会在下次数据发送的时候将这些缺失的数据再发送一份,将监控服务器所需的数据补充完整。这种方式下被监控对象无需知晓监控服务器发生了什么,只需遵照此方式发送数据即可。
需要说明的是,本发明实施例的监控方式可以用于对被监控对象的实时监控,在这种情况下,可以不用备份和存储历史明细数据,对于历史明细数据持久化保存不但浪费存储空间,还要消耗系统IO,影响性能。而实施例的监控数据处理方法下,当监控服务器收到一个被监控对象发来的某组或某几组数据时,可以将这些组的数据分别更新保存在内存中,以供后续使用。但如果监控服务器出现故障,或者因为其他原因需要重启,那么原先收到的这些数据就丢了,监控服务器只需将丢失的数据组对应的标识发送至相应的被监控对象,该被监控对象就可以将已丢失的数据重新发送至监控服务器。
以用于统计视频的在线播放的视频实时监控系统为例,被监控对象可以是客户端播放器。由于同时在线的客户端播放器可能数以百万计,或者更多,因此数据量非常大,这种情况下对历史明细数据进行存储是非常浪费存储空间,并消耗系统IO的。
可选地,本发明实施例还可以设置被监控对象的生命周期。具体地,被监控对象发送数据到监控服务器上,监控服务器才知道该被监控对象的存在,如果某个被监控对象下线了,那么它就不再向监控服务器发送数据。当监控服务器超过一定时间没收到这个被监控对象的数据之后,监控服务器就认为被监控对象已经不在线了,这个时间就叫做生命周期。因此一个在线的被监控对象必须以小于生命周期的间隔持续向监控服务器发送数据,以表示自己仍然在线,有时候发出的数据并不包含任何更新信息,仅仅是表明自己仍然在线。
实施例2
本发明实施例还提供了另一种监控数据处理方法,该方法可以通过本发明实施例提供的被监控对象来执行。如图2所示,该监控数据处理方法包括步骤如下:
步骤S202,被监控对象向监控服务器发送第一监控数据,以使监控服务器在接收到第一监控数据之后向被监控对象返回应答消息,其中,监控服务器用于监控被监控对象的多组数据,第一监控数据为多组数据中的至少一组数据,多组数据中每一组数据对应一个标识;
步骤S204,被监控对象接收应答消息,若应答消息中携带预设标识,则将预设标识对应的数据组发送给监控服务器,其中,预设标识为多组数据中监控服务器上缺失的数据组对应的标识。
监控服务器对被监控对象的监控数据为多组数据,该多组数据可以是根据被监控对象的多个指标所划分得到的多组数据,也即是被监控对象与监控服务器双方预先约定的被监控对象所提供的固定几组数据,第一监控数据可以是上述多组数据中的一组数据,也可以是上述多组数据中的几组数据。多组数据中每一组数据构成一个数据组,每一组数据对应一个标识。当监控服务器接收到上述多组数据中每一组数据,则表明监控服务器接收到了全量的监控数据,如果监控服务器发现其中部分标识在本地没有对应的数据时,则表明这些数据缺失,因此需要被监控对象重新发送这部分数据。
例如,将被监控对象的监控数据分为A、B、C和D四个组,其中,A组数据对应的标识为“A”,B组数据对应的标识为“B”,C组数据对应的标识为“C”,D组数据对应的标识为“D”。如果监控服务器接收到标识“A”和“B”对应的数据组,而查询出本地上标识“C”和“D”对应的数据组缺失,则将标识“C”和“D”添加到应答消息中并返回给被监控对象,被监控对象则将该缺失的数据组发送至监控服务器。
监控服务器在接收到第一监控数据之后,如果还存在未接收到的数据组,则以应答消息的方式将这些缺失的数据组对应的标识(也即是预设标识)发送给被监控对象,被监控对象接收到预设标识之后,将该预设标识对应的数据组发送至监控服务器。其中,未接收到的数据组可以是一组或者多组,相应地,预设标识可以是一个或多个。当缺失的数据组为多组的时候,被监控对象可以将多组数据分多次发送给监控服务器,一次发送一组数据。
根据本申请实施例,被监控对象向监控服务器发送第一监控数据之后,以使监控服务器在接收到第一监控数据之后向被监控对象返回应答消息,被监控对象接收到该应答消息之后,如果应答消息中携带有预设标识,即监控服务器上缺失的数据组对应的标识,则按照应答消息中携带的预设标识将相应的数据组发送至监控服务器,无需每次将全量的监控数据发送至监控服务器,解决了由于被监控对象每次将全量的监控数据发送给监控服务器造成的监控服务器处理的数据量大的技术问题,达到了减少数据传输和降低监控服务器数据处理量的技术效果。
本实施例中,关于监控服务器如何处理接收到的监控数据,请参见本发明实施例1的监控数据处理方法。
每个被监控对象的监控数据可以是固定的几个组,每个组都有各自的标识。比如被监控对象的监控数据由组A、组B、组C、组D组成,那么监控服务器接收到每个组数据,其监控数据就是完整的。被监控对象将监控数据划分成几个组,每组数据最少发送一次,在此之后,当这些组的数据发生变化的情况下才会再次发送,将发生变化的数据信息发送给监控服务器。
优选地,方法还包括:被监控对象记录多组数据中每一组数据的更新状态,更新状态包括第一状态和第二状态,其中,第一状态表示数据已经发送至监控服务器,第二状态表示数据未发送至监控服务器。
本发明实施例中,被监控对象对每一组数据的更新状态进行记录,这样,被监控对象在被监控的过程中,如果查询到哪一组的更新状态为第二状态,则将该状态下的数据组发送至监控服务器。
可选地,各组数据的更新状态可以是随着时间变化的,例如,假如数据组A的数据已经发送至监控服务器,此时数据组A的更新状态为第一状态;当被监控对象的数据组A的数据发生变化时,数据组A的更新状态变为第二状态,被监控对象查询到数据组A的更新状态变化为第二状态时,就知道数据组A的数据发生了变化,则将该组变化后的数据发送至监控服务器。
根据本发明实施例,被监控对象通过记录各组数据的更新状态,能够快速查询出哪些数据组已经更新到监控服务器。
优选地,在被监控对象向监控服务器发送第一监控数据之后,所述方法还包括:被监控对象将第一监控数据对应的数据组的更新状态由第二状态变更为第一状态。
本实施例中,第一监控数据在发送至监控服务器之前,其在被监控对象上的更新状态为第二状态,在被发送至监控服务器之后,其更新状态变更为第一状态。被监控对象在每次将监控数据发送至监控服务器之后,将该监控数据的更新状态及时变更,从而可以避免重复发送已经发送过的监控数据。
优选地,方法还包括:被监控对象接收来自监控服务器的第二监控数据对应的标识,其中,第二监控数据为监控服务器丢失的多组数据中至少一组数据;被监控对象依据第二监控数据对应的标识向监控服务器发送第二监控数据。
本发明实施例中,监控服务器上被监控对象的监控数据会有丢失的情况,例如,服务器宕机重启等等,此时监控服务器可以将丢失的数据组对应的标识发送至该被监控对象,其中,该被监控对象接收到监控服务器发送的上述标识之后,将上述标识对应的数据发送至监控服务器。
具体地,如果监控服务器因为某种原因失去了原来收到过的数据,只需通过返回值告诉被监控对象,那么被监控对象就会在下次数据发送的时候将这些缺失的数据再发送一份,将监控服务器所需的数据补充完整。这种方式下被监控对象无需知晓监控服务器发生了什么,只需遵照此方式发送数据即可。
实施例3
本发明实施例还提供了一种监控服务器,该监控服务器可以用于执行本发明实施例1的监控数据处理方法,如图3所示,该监控服务器包括:接收单元301、第一查询单元302和应答单元303。
接收单元301用于接收被监控对象发送的第一监控数据,其中,监控服务器用于监控被监控对象的多组数据,第一监控数据为多组数据中的至少一组数据。
第一查询单元302用于依据接收到的第一监控数据,查询是否存在缺失的数据组。
应答单元303用于当查询出存在缺失的数据组时,向所述被监控对象返回携带有预设标识的应答消息,以使所述被监控对象收到所述应答消息后将所述预设标识对应的数据组发送给所述监控服务器,其中,所述预设标识为所述多组数据中所述监控服务器上缺失的数据组对应的标识,所述多组数据中每一组数据对应一个标识。
监控服务器对被监控对象的监控数据为多组数据,该多组数据可以是根据被监控对象的多个指标所划分得到的多组数据,也即是被监控对象与监控服务器双方预先约定的被监控对象所提供的固定几组数据,第一监控数据可以是上述多组数据中的一组数据,也可以是上述多组数据中的几组数据。多组数据中每一组数据构成一个数据组,每一组数据对应一个标识。当监控服务器接收到上述多组数据中每一组数据,则表明监控服务器接收到了全量的监控数据,如果监控服务器发现其中部分标识在本地没有对应的数据时,则表明这些数据缺失,因此需要被监控对象重新发送这部分数据。
例如,将被监控对象的监控数据分为A、B、C和D四个组,其中,A组数据对应的标识为“A”,B组数据对应的标识为“B”,C组数据对应的标识为“C”,D组数据对应的标识为“D”。如果监控服务器接收到标识“A”和“B”对应的数据组,而查询出本地上标识“C”和“D”对应的数据组缺失,则将标识“C”和“D”添加到应答消息中并返回给被监控对象,被监控对象则将该缺失的数据组发送至监控服务器。
监控服务器在接收到第一监控数据之后,如果还存在缺失的数据组,则以应答消息的方式将这些缺失的数据组对应的标识(也即是预设标识)发送给被监控对象。其中,缺失的数据组可以是一组或者多组,相应地,预设标识可以是一个或多个。当缺失的数据组为多组的时候,被监控对象可以将多组数据分多次发送给监控服务器,一次发送一组数据。
由于被监控对象在向监控服务器发送数据的过程中,并不是所有发送的数据都能够准确达到监控服务器,监控服务器上的数据也可能丢失,而这些都会造成监控服务器缺失监控数据,因此,本实施例中,监控服务器在每次接收到被监控对象发送的数 据时,都查询该被监控对象在监控服务器本地是否存在缺失的数据组,如果是,则返回携带有缺失的数据组对应的标识的应答消息给被监控对象,以使该被监控对象将这些缺失的数据重新发送至监控服务器。需要说明的是,这里的“缺失的数据组”是指监控服务器本地不存在的数据组,以上述将被监控对象的监控数据分为A、B、C和D四个组为例,在监控服务器已经接收到上述四组数据之后,如果被监控对象上的A组数据发生变化,则被监控对象将变化后的A组数据发送给监控服务器以使监控服务器更新A组数据,监控服务器接收到A组数据之后,查询本地发现B、C和D三组数据均未缺失,则可以向被监控对象返回空的应答消息。
根据本申请实施例,监控服务器接收到来自被监控对象的第一监控数据之后,查询本地是否存在缺失的数据组,如果存在,则向该被监控对象返回携带有预设标识的应答消息,以告知被监控对象还有哪些组的数据监控服务器未接收到,客户端在接收到应答消息之后,按照应答消息中携带的预设标识将预设标识对应的数据组发送至监控服务器,无需将全量的监控数据发送至监控服务器,解决了由于被监控对象每次将全量的监控数据发送给监控服务器造成的监控服务器处理的数据量大的技术问题,达到了减少数据传输和降低监控服务器数据处理量的技术效果。
优选地,监控服务器还包括:第二查询单元,用于在接收被监控对象发送的第一监控数据之后,查询监控服务器本地是否存在被监控对象的记录;更新单元,用于当查询到存在被监控对象的记录时,用第一监控数据更新在监控服务器本地对应的数据组;当查询到不存在被监控对象的记录时,监控服务器创建被监控对象的记录,并用第一监控数据更新在监控服务器本地对应的数据组。
监控服务器所监控的被监控对象可以是一个或者多个,监控服务器如果第一次收到被监控对象发送的数据时,则监控服务器本地可能不存在该被监控对象的相关记录,因此,在接收到第一监控数据之后,查询监控服务器本地是否存在被监控对象的记录如果存在,利用接收到的第一监控数据更新相应的数据组;反之,则创建该被监控对象的记录,利用第一监控数据更新记录中相应的数据组。
具体地,被监控对象发到监控服务器的监控数据中,可以携带有被监控对象自身的身份标识(identification,简称为ID),每个组的数据携带有组标识,就像上面举例的A、B、C、D就是组标识。举例来说,监控服务器从收到的监控数据中可以看出,来自ID=1的被监控对象的监控数据,包含组A、B,或者来自ID=3的被监控对象的监控数据,包含组C。根据这些监控数据,监控服务器就能正确识别每个被监控对象的数据,并进行统计分析。
如果某个被监控对象(比如ID=1的被监控对象)之前已经发送过某个组的数据(比 如组A)给监控服务器,后来又发送了一次相同的组(组A)的数据,那么说明这个组的数据有更新,监控服务器应该以后来接收到的数据为准,更新相应的数据(这个例子中是ID=1的组A数据)。
本发明实施例中,通过被监控对象的记录以及数据组的标识能够准确有效地识别监控数据属于哪个被监控对象的哪组数据。
优选地,应答单元还用于当监控服务器查询出不存在缺失的数据组时,则向被监控对象返回空的应答消息。
监控服务器在接收到被监控对象发送的第一监控数据之后,查询本地是否存在缺失的数据组,该缺失的数据组可以是该被监控对象未发送至监控服务器或者监控服务器丢失的数据组,其对应的标识为上述预设标识。如果存在的话,则可以将上述预设标识添加到应答消息中,以便于将携带有该预设标识的应答消息发送至被监控对象;反之,则向被监控对象返回空消息。
优选地,监控服务器还包括:发送单元,用于在丢失第二监控数据的情况下,将第二监控数据对应的标识发送至被监控对象,以使被监控对象依据第二监控数据对应的标识向监控服务器发送第二监控数据,其中,第二监控数据为多组数据中至少一组数据。
本发明实施例中,监控服务器上被监控对象的监控数据会有丢失的情况,例如,服务器宕机重启等等,此时监控服务器可以将丢失的数据组对应的标识发送至该被监控对象,其中,该被监控对象接收到监控服务器发送的上述标识之后,将上述标识对应的数据发送至监控服务器。
具体地,如果监控服务器因为某种原因失去了原来收到过的数据,只需通过返回值告诉被监控对象,那么被监控对象就会在下次数据发送的时候将这些缺失的数据再发送一份,将监控服务器所需的数据补充完整。这种方式下被监控对象无需知晓监控服务器发生了什么,只需遵照此方式发送数据即可。
需要说明的是,本发明实施例的监控方式可以用于对被监控对象的实时监控,在这种情况下,可以不用备份和存储历史明细数据,对于历史明细数据持久化保存不但浪费存储空间,还要消耗系统IO,影响性能。而实施例的监控数据处理方法下,当监控服务器收到一个被监控对象发来的某组或某几组数据时,可以将这些组的数据分别更新保存在内存中,以供后续使用。但如果监控服务器出现故障,或者因为其他原因需要重启,那么原先收到的这些数据就丢了,监控服务器只需将丢失的数据组对应的标识发送至相应的被监控对象,该被监控对象就可以将已丢失的数据重新发送至监控 服务器。
以用于统计视频的在线播放的视频实时监控系统为例,被监控对象可以是客户端播放器。由于同时在线的客户端播放器可能数以百万计,或者更多,因此数据量非常大,这种情况下对历史明细数据进行存储是非常浪费存储空间,并消耗系统IO的。
实施例4
本发明实施例还提供了一种监控数据处理装置,该装置设置在被监控对象上,可以用于执行本发明实施例2的监控数据处理方法,被监控对象可以是客户端等等被监控点。如图4所示,该监控数据处理装置包括:第一发送单元401和第一接收单元403。
第一发送单元401用于向监控服务器发送第一监控数据,以使监控服务器在接收到第一监控数据之后向被监控对象返回应答消息,其中,监控服务器用于监控被监控对象的多组数据,第一监控数据为多组数据中的至少一组数据,多组数据中每一组数据对应一个标识。
第一接收单元403用于接收应答消息,若应答消息中携带预设标识,则将预设标识对应的数据组发送给监控服务器,其中,预设标识为多组数据中监控服务器上缺失的数据组对应的标识。
监控服务器对被监控对象的监控数据为多组数据,该多组数据可以是根据被监控对象的多个指标所划分得到的多组数据,也即是被监控对象与监控服务器双方预先约定的被监控对象所提供的固定几组数据,第一监控数据可以是上述多组数据中的一组数据,也可以是上述多组数据中的几组数据。多组数据中每一组数据构成一个数据组,每一组数据对应一个标识。当监控服务器接收到上述多组数据中每一组数据,则表明监控服务器接收到了全量的监控数据,如果监控服务器发现其中部分标识在本地没有对应的数据时,则表明这些数据缺失,因此需要被监控对象重新发送这部分数据。
例如,将被监控对象的监控数据分为A、B、C和D四个组,其中,A组数据对应的标识为“A”,B组数据对应的标识为“B”,C组数据对应的标识为“C”,D组数据对应的标识为“D”。如果监控服务器接收到标识“A”和“B”对应的数据组,而查询出本地上标识“C”和“D”对应的数据组缺失,则将标识“C”和“D”添加到应答消息中并返回给被监控对象,被监控对象则将该缺失的数据组发送至监控服务器。
监控服务器在接收到第一监控数据之后,如果还存在未接收到的数据组,则以应答消息的方式将这些缺失的数据组对应的标识(也即是预设标识)发送给被监控对象,被监控对象接收到预设标识之后,将该预设标识对应的数据组发送至监控服务器。其中,未接收到的数据组可以是一组或者多组,相应地,预设标识可以是一个或多个。 当缺失的数据组为多组的时候,被监控对象可以将多组数据分多次发送给监控服务器,一次发送一组数据。
根据本申请实施例,被监控对象向监控服务器发送第一监控数据之后,以使监控服务器在接收到第一监控数据之后向被监控对象返回应答消息,被监控对象接收到该应答消息之后,如果应答消息中携带有预设标识,即监控服务器上缺失的数据组对应的标识,则按照应答消息中携带的预设标识将相应的数据组发送至监控服务器,无需每次将全量的监控数据发送至监控服务器,解决了由于被监控对象每次将全量的监控数据发送给监控服务器造成的监控服务器处理的数据量大的技术问题,达到了减少数据传输和降低监控服务器数据处理量的技术效果。
本实施例中,关于监控服务器如何处理接收到的监控数据,请参见本发明实施例1的监控数据处理方法。
优选地,装置还包括:记录单元,用于记录多组数据中每一组数据的更新状态,更新状态包括第一状态和第二状态,其中,第一状态表示数据已经发送至监控服务器,第二状态表示数据未发送至监控服务器。
本发明实施例中,被监控对象对每一组数据的更新状态进行记录,这样,被监控对象在被监控的过程中,如果查询到哪一组的更新状态为第二状态,则将该状态下的数据组发送至监控服务器。
可选地,各组数据的更新状态可以是随着时间变化的,例如,假如数据组A的数据已经发送至监控服务器,此时数据组A的更新状态为第一状态;当被监控对象的数据组A的数据发生变化时,数据组A的更新状态变为第二状态,被监控对象查询到数据组A的更新状态变化为第二状态时,就知道数据组A的数据发生了变化,则将该组变化后的数据发送至监控服务器。
根据本发明实施例,被监控对象通过记录各组数据的更新状态,能够快速查询出哪些数据组已经更新到监控服务器。
优选地,装置还包括:变更单元,用于在向监控服务器发送第一监控数据之后,将第一监控数据对应的数据组的更新状态由第二状态变更为第一状态。
本实施例中,第一监控数据在发送至监控服务器之前,其在被监控对象上的更新状态为第二状态,在被发送至监控服务器之后,其更新状态变更为第一状态。被监控对象在每次将监控数据发送至监控服务器之后,将该监控数据的更新状态及时变更,从而可以避免重复发送已经发送过的监控数据。
优选地,装置还包括:第二接收单元,用于接收来自监控服务器的第二监控数据对应的标识,其中,第二监控数据为监控服务器丢失的多组数据中至少一组数据;第二发送单元,用于依据第二监控数据对应的标识向监控服务器发送第二监控数据。
本发明实施例中,监控服务器上被监控对象的监控数据会有丢失的情况,例如,服务器宕机重启等等,此时监控服务器可以将丢失的数据组对应的标识发送至该被监控对象,其中,该被监控对象接收到监控服务器发送的上述标识之后,将上述标识对应的数据发送至监控服务器。
具体地,如果监控服务器因为某种原因失去了原来收到过的数据,只需通过返回值告诉被监控对象,那么被监控对象就会在下次数据发送的时候将这些缺失的数据再发送一份,将监控服务器所需的数据补充完整。这种方式下被监控对象无需知晓监控服务器发生了什么,只需遵照此方式发送数据即可。
下面结合具体示例对本发明实施例的一种优选的实施方式进行详细说明。其中,被监控对象的ID=1,初始化组A、B、C、D为未更新(即第二状态);
步骤S1,被监控对象把未更新的组信息发送给监控服务器,也就是把A、B、C、D四个组都发出去,然后把这四个组都标记为已更新(即第一状态)。
步骤S2,监控服务器收到ID=1的数据,查找后发现没有记录,就创建ID=1的记录,并更新这四个组。然后查询缺少哪些组,由于所有的四个组都刚更新过,所以没有缺少任何组,所以返回给被监控对象的应答消息是空的。
步骤S3,被监控对象收到应答消息,由于该应答消息是空的,所以不更改任何组的状态。
假设这期间服务器宕机重启了,并且ID=1这个被监控对象的B组信息发生了变化,那么接下来:
步骤S4,由于B组有更新,被监控对象记录B组的状态为未更新,其他组仍然是已更新。
步骤S5,被监控对象把未更新的B组数据发送到监控服务器,然后把B组标记为已更新,这样所有组又都是已更新状态了。
步骤S6,监控服务器收到ID=1的数据,查找后发现没有记录,就创建ID=1的记录,并更新发过来的组B。然后查询缺少哪些组,发现缺少组A、C、D,所以返回给监控服务器的数据包括三个组的标识A、C、D。
步骤S7,被监控对象收到应答信息,将应答信息中的A、C、D三个组的状态变为未更新。
接下来的一次发送:
步骤S8,被监控对象记录中A、C、D组的状态为未更新,B组是已更新;
步骤S9,被监控对象把未更新的A、C、D组数据发送到监控服务器,然后把这三组组标记为已更新,这样所有组又都是已更新状态了。
步骤S10,监控服务器收到ID=1的数据,查找后发现已经有记录,就将收到的A、C、D组的信息更新到ID=1的记录里。然后查询缺少哪些组,这时所有的四个组都已经更新过,所以没有缺少任何组,所以返回给被监控对象的应答消息是空的。
步骤S11,被监控对象收到应答信息,由于信息是空的,所以不更改任何组的状态。
按照上述步骤进行,就可以在监控服务器宕机情况下及时让被监控对象发送缺失的信息,使得监控服务器能够尽快恢复对被监控对象的全面监控。
综上,本发明实施例的技术方案可以达到如下效果:
1、由于监控服务器会告诉被监控对象缺少哪些数据,因此所有在线的被监控对象都可以及时将缺失的数据发给监控服务器,以达到监控服务器在任何情况下(包括监控服务器宕机重启)重新获得要监控的数据;
2、由于在一个生命周期的间隔内,所有在线的被监控对象一定会进行至少一次数据发送,因此在此间隔内每个在线的被监控对象一定都能得知接下来需要补发哪些数据,这样一来,监控服务器上的数据就能在确定的时间间隔内恢复完整。这个时间间隔取决于生命周期。生命周期可以设置为1-2分钟;
3、由于缺失的数据来自于被监控对象,所以无需占用任何持久化存储空间(监控服务器端不需要,被监控对象一方也不需要),相应地也无需占用系统IO,节省资源开销;
4、由于被监控对象可以直接将最新的数据发到监控服务器,所以监控服务器在恢复过程中无需考虑过去的状态,节省了计算量,提高了性能;
5、由于监控服务器会对每一个被监控对象进行分别的检索和回复,因此除了重启之后的数据恢复这个场景外,其他任何情况导致的数据缺失都能用本方法发现,进而恢复。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。