一种业务数据的统计方法、装置及系统与流程

文档序号:12278289阅读:389来源:国知局
一种业务数据的统计方法、装置及系统与流程

本发明涉及互联网技术领域,尤其涉及一种用于实现业务数据监控的业务数据统计方法、装置及系统。



背景技术:

在企业运营、市场调研或数据库管理等过程中,常常需要对一些业务数据进行监控,例如对广告业务数据进行监控,对物流业务数据进行监控等。

目前,有些监控系统为了获得实时监控结果,通过在业务的代码中调用属性上报应用程序接口(attr_api)来实时获得某个属性的上报次数,然后依据该次数数值进行监控。但该数值仅仅代表业务代码里面的某个分支的逻辑,是和业务相分离的,其只能从最粗的维度监控业务收发包的情况和一些资源的整体使用量,无法掌握收发包中某个关键(key)值的分配比例,无法细分资源的用途和用量。

此外,有些监控系统为了获得业务的各项统计值,会先将业务的各项数值写磁盘,然后推送到Hadoop平台,第二天再依据Hadoop平台进行离线计算,获得业务前一天的各项统计指标。但Hadoop平台只是一个离线数据的计算平台,无法实现实时统计。此外,Hadoop平台上的任务都是串行执行的,很多故障是因为前面的任务阻塞,导致后续简单的任务无法执行。

另外,还有些监控系统使用Storm实时计算平台进行各项数据统计的实时计算。但Storm监控系统对于机器的内存要求较高,技术门槛高,且做实时统计的代价较高。

因此,本领域内的技术人员还在致力于寻找其它的业务数据实时监控解决方案。



技术实现要素:

有鉴于此,本发明实施例中一方面提供一种业务数据的发送、统计方法,另一方面提供一种业务数据的发送、统计装置和系统,用以在低内存消耗的情况下实现业务数据的实时统计,以便根据该实时统计数据进行实时监控。

本发明实施例中提供的一种业务数据的发送方法,包括:

对于当前业务产生的各分类项的当前数值,业务服务器将包含所述当前业务的业 务标识、所述业务服务器的IP地址、以及所述当前业务的各分类项的当前数值在内的信息,按照设定的数据包格式进行打包,生成一数据包;

业务服务器将所述数据包发送给一单机统计服务器。

本发明实施例中提供的一种业务数据的统计方法,包括:

单机统计服务器按照预定时间规则读取针对至少一个业务的配置文件,生成针对所述至少一个业务中的各个业务的配置信息;

单机统计服务器接收来自一业务服务器的数据包;所述数据包中包含一业务的业务标识、所述业务服务器的IP地址、以及所述业务的各分类项的数值;

单机统计服务器根据所述业务标识判断是否存在针对所述业务的配置信息,如果是,则根据所述配置信息的统计要求,判断缓存中是否有所述业务的相应分类项的在先统计值,如果有,则从缓存中读取所述业务的相应分类项的统计值,将所述数据包中所述业务的相应分类项的数值分别与所读取的对应统计值进行计数和/或累加统计,将统计结果写回缓存中;否则,直接将所述数据包中所述业务的相应分类项的数值作为统计值存入缓存中;

单机统计服务器在达到设定的实时结果输出时间时,将本时间片的所述缓存中的至少一个业务的相应统计项的统计值按照设定的数据包格式打包,生成包含至少一个单机统计分量的单机汇总数据包;其中,每个单机统计分量包括业务标识、所述业务的统计项标识、以及所述统计项的统计值;将所述单机汇总数据包发送给汇总服务器,同时清空所述缓存;或者单机统计服务器在达到设定的实时结果输出时间时,将本时间片的所述缓存中的至少一个业务的相应统计项的统计值写入存储器中,同时清空所述缓存。

本发明实施例中提供的一种业务数据的发送装置,包括:

数据包生成模块,用于对于当前业务产生的各分类项的当前数值,将包含所述当前业务的业务标识、所述业务服务器的IP地址、以及所述当前业务的各分类项的当前数值在内的信息,按照设定的数据包格式进行打包,生成一数据包;

数据包发送模块,用于将所述数据包发送给一单机统计服务器。

本发明实施例中提供的一种业务数据的统计装置,包括:

配置加载模块,用于按照预定时间规则读取针对至少一个业务的配置文件,生成针对所述至少一个业务中的各个业务的配置信息;

数据包接收模块,用于接收来自一业务服务器的数据包;所述数据包中包含一业务的业务标识、所述业务服务器的IP地址、以及所述业务的各分类项的数值;

数据统计模块,用于根据所述业务标识确定存在针对所述业务的配置信息时,根 据所述配置信息的统计要求,判断缓存中是否有所述业务的相应分类项的在先统计值,如果有,则从缓存中读取所述业务的相应分类项的统计值,将所述数据包中所述业务的相应分类项的数值分别与所读取的对应统计值进行计数和/或累加统计,将统计结果写回缓存中;否则,直接将所述数据包中所述业务的相应分类项的数值作为统计值存入缓存中;

结果存储模块,用于在达到设定的实时结果输出时间时,将本时间片的所述缓存中的至少一个业务的相应统计项的统计值写入存储器中,同时清空所述缓存。

本发明实施例中提供的一种业务数据的统计系统,包括:至少两台分布式单机统计装置和至少一台汇总统计装置;其中,

每台单机统计装置用于根据预定时间规则读取针对至少一个业务的配置文件,生成针对所述至少一个业务中的各个业务的配置信息;接收来自一业务服务器的数据包;所述数据包中包含一业务的业务标识、所述业务服务器的IP地址、以及所述业务的各分类项的数值;根据所述业务标识判断是否存在针对所述业务的配置信息,如果是,则根据所述配置信息的统计要求,判断缓存中是否有所述业务的相应分类项的在先统计值,如果有,则从缓存中读取所述业务的相应分类项的统计值,将所述数据包中所述业务的相应分类项的数值分别与所读取的对应统计值进行计数和/或累加统计,将统计结果写回缓存中;否则,直接将所述数据包中所述业务的相应分类项的数值作为统计值存入缓存中;在达到设定的实时结果输出时间时,将本时间片的所述缓存中的至少一个业务的相应统计项的统计值按照设定的数据包格式打包,生成包含至少一个单机统计分量的单机汇总数据包;其中,每个单机统计分量包括业务标识、所述业务的统计项标识、以及所述统计项的统计值;将所述单机汇总数据包发送给汇总服务器,同时清空所述缓存;

每台汇总统计装置用于接收各分布式单机统计服务器单机汇总数据包,从所述单机汇总数据包解析出各单机统计分量;根据所述业务标识判断缓存中是否有所述业务的相应统计项的在先统计值,如果有,则从缓存中读取所述业务的相应统计项的统计值,将所述单机统计分量中所述统计项的统计值分别与所读取的对应统计值进行计数和/或累加统计,将统计结果写回缓存中;否则直接将所述业务的所述统计项的统计值作为统计值写入缓存中;在达到设定的实时结果输出时间时,将本时间片内所述缓存中的至少一个业务的相应统计项的统计值写入存储器中。

本发明实施例中提供的又一种业务数据的统计系统,包括:上述的业务数据的发送装置;和上述的业务数据的统计装置。

本发明实施例中提供的一种业务数据的监控系统,包括:

业务监控模块,以及上述的业务数据的统计装置或上述的业务数据的统计系统或上述的业务数据的统计系统;其中,

所述业务监控模块用于从存储器中读取一业务的一分类项的统计结果,将所述统计结果与预先设定的对应所述分类项的告警阈值进行比较,当达到所述告警阈值时,发出告警;和/或,从存储器中读取一业务的一分类项的统计结果,判断所述统计结果是否满足设定的反馈条件,如果满足,则将所述统计结果反馈给业务管理系统。

可见,本发明实施例中,由于能够将当前业务的各分类项的当前数值打包发送,进而由分布式并行处理的单机统计服务器对各业务的相应分类项进行实时统计和输出,使得汇总服务器可以实时对来自各单机统计服务器的各统计项进行汇总,并实时将汇总后的数据存储到存储介质中,从而可以实现业务数据的实时统计,并且由于统计过程是分时分层进行的,因此可以较小的消耗内存。

附图说明

为了更清楚的说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。其中,

图1a和图1b为本发明各个实施例所涉及的两种实施环境的结构示意图;

图2为本发明实施例中一种业务数据的发送方法的示例性流程图;

图3为本发明一个示例中数据包的组成及格式的示意图;

图4a为本发明实施例中一种业务数据的单机统计方法的示例性流程图;

图4b为本发明实施例中又一种业务数据的单机统计方法的示例性流程图;

图5为本发明一个示例中的配置文件的示意图;

图6为本发明一个示例中在内存中进行缓存的存储结构示意图;

图7为一个示例中单机汇总数据包的组成及格式示意图;

图8为本发明实施例中一种业务数据的汇总统计方法的示例性流程图;

图9为本发明实施例中业务数据的发送装置的示例性结构图;

图10为本发明实施例中业务数据的统计装置的示例性结构图;

图11为本发明实施例中业务数据的统计系统的示例性结构图;

图12为本发明实施例中一种服务器设备的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,以下举实施例对本发明进一步详细说明。

图1a为本发明各个实施例所涉及的一种实施环境的结构示意图。如图1a所示,该实施环境包括至少一台业务服务器110,至少两台分布式单机统计服务器120和至少一台汇总服务器130。第一种实施环境应用于具有大型业务数据统计需求的应用中。图1b为本发明各个实施例所涉及的又一种实施环境的结构示意图。如图1b所示,该实施环境包括至少一台业务服务器110和至少一台单机统计服务器120。第二种实施环境应用于具有小型业务数据统计需求的应用中。

其中,不同的业务服务器110可以处理不同的业务,也可以处理相同的业务,同一台业务服务器110可以只处理一个业务,也可以处理多项不同的业务。

业务服务器110与单机统计服务器120之间、单机统计服务器120与汇总服务器130之间,分别可以通过无线网络或有线网络相连。

对于图1a所示实施环境,各分布式单机统计服务器120是采用多机器并行接收的架构,一方面可防止单机故障,另一方面可提高实时统计的吞吐量。由于每台单机统计服务器120的业务逻辑完全相同,因此能够很方便的进行平行扩展,实现各业务服务器110的业务在各分布式单机统计服务器120上均衡负载。此外,汇总服务器130通常可以布置主备两台,以防止单机故障。

对于图1b所示实施环境,单机统计服务器120也可以布置主备两台,以防止单机故障。

图2为本发明实施例中一种业务数据的发送方法的示例性流程图。该方法可应用于图1a和图1b所示的每台业务服务器110中。如图2所示,该方法可包括如下步骤:

步骤201,对于当前业务产生的各分类项的当前数值,将包含所述当前业务的业务标识、来源的业务服务器的IP地址、以及所述当前业务的各分类项的当前数值在内的信息,按照设定的数据包格式进行打包,生成一数据包。

本实施例中,数据包格式可以有多种。例如,可以采用tlv(type_length_value)格式,该格式通用性较强,几乎所有业务都通用,并且可以实现每个字段的自解析,与业务之间无需约定额外的协议,从而可适配所有业务。此外,也可以采用字符串格式,或者以及其它格式等。

本实施例中,以tlv格式为例,对数据包的组成进行描述说明。图3中示出了 一个示例中数据包的组成及格式的示意图。

如图3所示,各个字段的含义如下:

Stx[1byte]=2 值为2标识本数据包为tlv格式的业务流水

Bid[4byte] 标识本条数据的业务ID(标识)

Tlvs_len[4byte] 标识本数据包后面的数据部分的总长度(所有tlv的总长度,不含包头,虚线框内的部分为包头部分)

Local_ip 标识本数据包来源的业务侧服务器IP地址

Timestamp 发送本数据包的时间戳

Data_tlv 业务的具体分类项的数值

T:标识数值的类型(char/short/int/long long/string)

L:标识数值的长度

V:具体数据(如果为short/int/longlong类型则为网络序)

在表1所示格式的数据包中,业务各个分类项的数值通过各自的顺序位置进行区分,本示例中,该顺序位置可从0开始。例如,以广告业务为例,位置0的Data_tlv可用于放置广告业务的订单号,位置1的Data_tlv可用于放置广告业务的订单时间,位置2的Data_tlv可用于放置广告业务是否曝光的指示,位置3的Data_tlv可用于放置广告业务曝光后是否有点击的指示,位置4的Data_tlv可用于放置当前广告对应的广告位等。

在一个示例中,可以为业务提供一个set(设置)函数接口,每次调用时业务方(如业务服务器110)可以将一个分类项的数值填写到一个Data_tlv中。业务方在代码中多次调用该set函数,可将需要统计监控的各个分类项的数值填充进数据包的Data_tlv数组中,从而得到表1所述数据包。

在又一个示例中,也可以为业务提供一个其它的数据填充函数,每次调用该数据填充函数时,业务方可以将需要统计监控的各个分类项的数值一次性填充进数据包的各个Data_tlv数组中,从而得到表1所述数据包。

步骤202,将所述数据包发送给一单机统计服务器。

本步骤中,对于图1b所示的实施环境,该业务服务器可将所述数据包直接发送给所述单机统计服务器。通常情况下,该实施环境中可以有两台单机统计服务器,一台为主单机统计服务器,一台为备单机统计服务器,以防止出现单机故障。

在一个示例中,可将填好的数据包调用send(发送)函数接口发送给单机统计服务器120即可。

对于图1a所示的实施环境,该业务服务器可根据对所述至少两台分布式单机统计 服务器进行负载均衡处理后确定的发送规则,将所述数据包发送给所述发送规则确定的当前单机统计服务器。

在一个示例中,可在send函数接口中调用一个负载均衡组件,通过该负载均衡组件实时剔除存在故障的单机统计服务器,感知新上线的单机统计服务器,并且在多台分布式单机统计服务器中进行平均分配,实现负载均衡。

图4a为本发明实施例中一种业务数据的单机统计方法的示例性流程图。该方法可应用于图1a所示的每台单机统计服务器120中。如图4a所示,该方法可包括如下步骤:

步骤401,按照预定时间规则读取针对至少一个业务的配置文件,生成针对所述至少一个业务中的各个业务的配置信息。

本步骤中,通过分发该配置文件给所有的单机统计服务器,来控制单机统计服务器接收数据后的处理方式。单机统计服务器可在启动时加载该配置,并且后续可通过定时加载更新的配置文件来获得最新的配置。例如,可以每隔一个设定的时间间隔,如1分钟、5分钟、10分钟、……、1小时等,加载一次最新的配置。

本实施例中的所述配置文件,可用于指示所述业务包括哪几个统计项、对哪个分类项进行计数统计(Count)、对哪个分类项进行累加统计(Sum)、以哪个分类项为关键值时对哪个分类项进行计数统计(Distinct_count)、以及以哪个分类项为关键值时对哪个分类项进行累加统计(Distinct_sum)。

图5示出了一个示例中的配置文件。如图5所示,该配置文件中指示的内容包括:

对业务ID为0的业务进行配置,具体地,对该业务下的第一个统计,即Id=0的统计为:以该业务下的位置0处的Data_tlv为关键(key)值(即key_num=0),对该业务下的位置2处的Data_tlv(即num=1)进行计数统计(即Calc_type=distinct_count),对该业务下的第二个统计,即Id=1的统计为:直接对该业务下的位置3处的Data_tlv(即num=2)进行计数统计(即Calc_type=count);……

步骤402,接收来自一业务服务器的数据包;所述数据包中包含一业务的业务标识、所述业务服务器的IP地址、以及所述业务的各分类项的数值。

本步骤中,数据包的格式可如图3所示。

步骤403,根据所述业务标识判断是否存在针对所述业务的配置信息,如果是,则执行步骤404;否则,可放弃所述数据包。

本步骤中,针对一项业务可能存在多项统计,则下述步骤404和步骤405中就需要遍历配置信息中的每项配置,依次完成对应的分类项统计。

步骤404,根据所述配置信息的统计要求,判断缓存中是否有所述业务的相应分 类项的在先统计值,如果有,则执行步骤405;否则,执行步骤406。

步骤405,从缓存中读取所述业务的相应分类项的统计值,将所述数据包中所述业务的相应分类项的数值分别与所读取的对应统计值进行计数和/或累加统计,将统计结果写回缓存中。

本步骤中,根据配置信息的统计要求,涉及到的统计计算可能包括:

Count:对该Data_tlv上的数值进行累加计数,将计数结果再写回缓存;

Sum:从缓存中取出上次求和的值,与当前值进行求和,将求和结果再写回缓存;

Distinct_count:读取Data_tlv上的数值,将其作为key值,从缓存中取出对应该key值的计数统计值进行累加计数,将计数结果再写回缓存;

Distinct_sum:读取Data_tlv上数值,将其作为key值,从缓存中取出对应该key值的求和统计值与当前Data_tlv字段的数值求和,将求和结果再写回缓存。

图6示出了一个示例中在内存中进行缓存的存储结构示意图。如图6所示,在一级检索中,存储的是各个业务的业务ID,在二级检索中,存储的是各业务ID对应的业务的各项统计,在最后的统计单元中,存储的是每项统计下具体的统计值。例如,假设业务ID为0的业务的第3项统计为以订单号为关键值,对各订单号下的订单数进行计数统计,则可得到订单0的数量,订单1的数量,订单2的数量,……;假设业务ID为0的业务的第4项统计为以广告位为关键值,对各广告位下的广告数进行计数统计,则可得到广告位0的广告数量,广告位1的广告数量,广告位2的广告数量,……。

步骤406,直接将所述数据包中所述业务的相应分类项的数值作为统计值存入缓存中。

步骤407a,在达到设定的实时结果输出时间时,将本时间片的所述缓存中的至少一个业务的相应分类项的统计值按照设定的数据包格式打包,生成包含至少一个单机统计分量的单机汇总数据包。其中,每个单机统计分量包括业务标识、所述业务的统计项标识、以及所述统计项的统计值。

本实施例中,设定的实时结果输出时间可以为1秒钟、2秒钟、……、5秒钟、……、以及1分钟等时间。

图7中示出了一个示例中单机汇总数据包的组成及格式示意图。如图7所示,该单机汇总数据包包括包头和包体,包体包括至少一个单机统计分量组成的数组。其中,各字段的含义如下:

包头字段说明:

Max_len:包的最大长度;

Len:包数据部分的长度,不含包头长度。

每个单机统计分量的字段说明:

Len:单机统计分量的长度;

Bid:业务ID;

Id:统计项ID;

Reserved:(预留项);

Value:统计的结果值,无论计算类型为(count sum distinct_count distinct_sum)中的哪一个;

Key_tlv:distinct统计的key字段,对于count和sum,可默认直接填0。

例如,对应图6所示存储结构中存储的内容,其中一个单机统计分量中的Key_tlv可以为order0,相应地,前面的value为订单0的数量;另一个单机统计分量中的Key_tlv可以为order1,相应地,前面的value为订单1的数量;再一个单机统计分量中的Key_tlv可以为order2,相应地,前面的value为订单2的数量,依次类推。

步骤408,将所述单机汇总数据包发送给汇总服务器,同时清空所述缓存。

图4b为本发明实施例中又一种业务数据的统计方法的示例性流程图。该方法可应用于图1b所示的每台单机统计服务器120中。如图4b所示,该方法可包括如下步骤:

步骤401~步骤406的详细描述与图4a中一致,此处不再赘述。

步骤407b,在达到设定的实时结果输出时间时,将本时间片的所述缓存中的至少一个业务的相应分类项的统计值写入存储器中,同时清空所述缓存。

图8为本发明实施例中一种业务数据的汇总统计方法的示例性流程图。该方法可应用于图1a所示的每台汇总服务器130中。如图8所示,该方法可包括如下步骤:

步骤801,接收来自至少一个单机统计服务器的单机汇总数据包,从所述单机汇总数据包解析出各单机统计分量。其中,每个单机统计分量包括业务标识、所述业务的统计项标识、以及所述统计项的统计值。

本实施例中,可将分发给所有单机统计服务器的配置文件同时配置在汇总服务器中,以便于汇总服务器对所接收的单机汇总数据包中的数据进行处理。同样该汇总服务器也可在启动时加载该配置,并且后续可通过定时加载更新的配置文件来获得最新的配置。例如,可以每隔一个设定的时间间隔,如1分钟、5分钟、10分钟、……、1小时等,加载一次最新的配置。即汇总服务器可按照预定时间规则读取针对至少一个业务的配置文件,生成针对所述至少一个业务中的各个业务的配置信息。

或者,在另一种实施方式中,也可不在汇总服务器中进行配置文件的配置,而是 由单机统计服务器在步骤407a中组包单机汇总数据包时,在所述数据包中添加相应的解析信息,由汇总服务器直接对来自单机统计服务器的数据进行解析后,按照与各单机统计服务器相同的格式,将来自各单机统计服务器的单机汇总数据包中的相应数据进行累加统计。

步骤802,根据所述业务标识判断缓存中是否有所述业务的相应统计项的在先统计值,如果有,则执行步骤803;否则,执行步骤804。

本实施例中,对于加载配置文件的实施方式,步骤802之前,可进一步根据所述业务标识判断是否存在针对所述业务的配置信息,如果是,则根据所述配置信息的统计要求,执行步骤802。

步骤803,从缓存中读取所述业务的相应统计项的统计值,将所述单机统计分量中所述统计项的统计值分别与所读取的对应统计值进行计数和/或累加统计,将统计结果写回缓存中。

本实施例中,在内存中进行缓存的存储结构可与单机统计服务器中的存储结构一致,此处不再赘述。

步骤804,直接将所述业务的所述统计项的统计值作为统计值写入缓存中。

步骤805,在达到设定的实时结果输出时间时,将本时间片内所述缓存中的至少一个业务的相应统计项的统计值写入存储器中,同时清空所述缓存。

本发明实施例中,图2和图4b共同构成图1b所示实施环境下的业务数据实时统计,图2、图4a和图8共同构成图1a所示实施环境下的业务数据实时统计。实时统计后的数据在存储到存储器中后用于监控系统进行业务数据的实时读取和监控。图4b和图8中所述的存储器为非易失性存储器,其可以为磁盘(如硬盘、软盘、闪存等)、光盘(如CD-ROM等)、磁光存储介质(如MO等)等。

在之后的业务数据监控中,可实时的(如上述每1秒写存储器的实施方式,则可每秒读取存储器,上述每2秒写存储器的实施方式,则可每2秒读取存储器等)从存储器中读取相应业务的相应分类项的统计结果进行监控。例如,可以监控关键订单的执行情况,监控关键客户的广告播放进度,实时监控资源流量分配情况(曾经cookieMapping业务经常会在某几个时刻出现负载过高,但是又不知道突发流量来自哪里,只能通过抓包方式定位,然而抓包都是在发生之后实施,并且也不一定能够准确定位。而应用本发明实施例中的数据统计方案后,则可以轻松的看到当时是由于哪个dsp引起或者某个腾讯自己的站点流量突增引起,方便发现问题)等。

此外,还可以预先设置针对相应业务相应分类项的告警阈值,通过实时的从存储器中读取相应业务的相应分类项的统计结果,将所述统计结果与预先设定的对应所述 分类项的告警阈值进行比较,当达到所述告警阈值时,发出告警。例如,当某个订单超播时,可以立即发出告警,或当某个资源没有流量到达时发出告警,或当某个关键订单播放量跌0时发出告警等。

另外,还可以实时地从存储器中读取相应业务的相应分类项的统计结果,判断所述统计结果是否满足设定的反馈条件,如果满足,则将所述统计结果反馈给业务管理系统。例如,当某个维度的数值符合一定条件时,可以反馈到线上业务系统,由业务系统进行动态调整。如当某台机器请求量跌0,或者响应数跌0,或者超时量大于阀值,可以反馈给线上系统,实时踢除该机器,等待人工定位。如当某个订单播放达标时,也可以反馈给线上系统直接停止订单。品牌程序化购买时也可以用来实时监控订单的回退量和总发送量,反馈给线上系统,当回退到一定比例后,直接播放默认单。

下述为本发明装置实施例,可以用于执行本发明对应的方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例中的描述。

图9为本发明实施例中业务数据的发送装置的示例性结构图。该装置可应用于图1a和图1b所示的每台业务服务器110中。如图9所示,该装置可包括:数据包生成模块901和数据包发送模块902。

其中,数据包生成模块901用于对于当前业务产生的各分类项的当前数值,将包含所述当前业务的业务标识、所述业务服务器的IP地址、以及所述当前业务的各分类项的当前数值在内的信息,按照设定的数据包格式进行打包,生成一数据包。

数据包发送模块902用于将所述数据包发送给一单机统计服务器。

在一个实施方式中,当存在至少两台分布式单机统计服务器时,数据包发送模块902可根据对所述至少两台分布式单机统计服务器进行负载均衡处理后确定的发送规则,将所述数据包发送给所述发送规则确定的当前单机统计服务器。

图10为本发明实施例中业务数据的统计装置的示例性结构图。该装置可应用于图1b所示的每台单机统计服务器120中。如图10所示,该装置可包括:配置加载模块1001、数据包接收模块1002、数据统计模块1003和结果存储模块1004。

其中,配置加载模块1001用于按照预定时间规则读取针对至少一个业务的配置文件,生成针对所述至少一个业务中的各个业务的配置信息。其中,所述配置信息包括如下信息中的任一个或任意组合:所述业务包括几个统计项、对哪个分类项进行计数统计、对哪个分类项进行累加统计、以哪个分类项为关键值时对哪个分类项进行计数统计、以及以哪个分类项为关键值时对哪个分类项进行累加统计。

数据包接收模块1002用于接收来自一业务服务器的数据包;所述数据包中包含一业务的业务标识、所述业务服务器的IP地址、以及所述业务的各分类项的数值。

数据统计模块1003用于根据所述业务标识确定存在针对所述业务的配置信息时,根据所述配置信息的统计要求,判断缓存中是否有所述业务的相应分类项的在先统计值,如果有,则从缓存中读取所述业务的相应分类项的统计值,将所述数据包中所述业务的相应分类项的数值分别与所读取的对应统计值进行计数和/或累加统计,将统计结果写回缓存中;否则,直接将所述数据包中所述业务的相应分类项的数值作为统计值存入缓存中。

结果存储模块1004用于在达到设定的实时结果输出时间时,将本时间片的所述缓存中的至少一个业务的相应统计项的统计值写入存储器中,同时清空所述缓存。

图11为本发明实施例中业务数据的统计系统的示例性结构图。如图11所示,该系统可包括至少两个分布式单机统计装置1110和至少一个汇总统计装置1120。其中,每个单机统计装置1110可应用于图1a所示的每台单机统计服务器120中,每个汇总统计装置1120可应用于图1a所示的每台汇总服务器130中。

其中,每台单机统计装置1110用于根据预定时间规则读取针对至少一个业务的配置文件,生成针对所述至少一个业务中的各个业务的配置信息;接收来自一业务服务器的数据包;所述数据包中包含一业务的业务标识、所述业务服务器的IP地址、以及所述业务的各分类项的数值;根据所述业务标识判断是否存在针对所述业务的配置信息,如果是,则根据所述配置信息的统计要求,判断缓存中是否有所述业务的相应分类项的在先统计值,如果有,则从缓存中读取所述业务的相应分类项的统计值,将所述数据包中所述业务的相应分类项的数值分别与所读取的对应统计值进行计数和/或累加统计,将统计结果写回缓存中;否则,直接将所述数据包中所述业务的相应分类项的数值作为统计值存入缓存中;在达到设定的实时结果输出时间时,将本时间片的所述缓存中的至少一个业务的相应统计项的统计值按照设定的数据包格式打包,生成包含至少一个单机统计分量的单机汇总数据包;其中,每个单机统计分量包括业务标识、所述业务的统计项标识、以及所述统计项的统计值;将所述单机汇总数据包发送给汇总服务器,同时清空所述缓存。

每台汇总统计装置1120用于接收各分布式单机统计服务器单机汇总数据包,从所述单机汇总数据包解析出各单机统计分量;根据所述业务标识判断缓存中是否有所述业务的相应统计项的在先统计值,如果有,则从缓存中读取所述业务的相应统计项的统计值,将所述单机统计分量中所述统计项的统计值分别与所读取的对应统计值进行计数和/或累加统计,将统计结果写回缓存中;否则直接将所述业务的所述统计项的统计值作为统计值写入缓存中;在达到设定的实时结果输出 时间时,将本时间片内所述缓存中的至少一个业务的相应统计项的统计值写入存储器中。

在一个实施方式中,汇总统计装置1120可按照预定时间规则读取针对至少一个业务的配置文件,生成针对所述至少一个业务中的各个业务的配置信息;并在接收到来自至少一个单机统计服务器的单机汇总数据包并解析出各单机统计分量后,根据所述业务标识判断是否存在针对所述业务的配置信息,如果是,则根据所述配置信息的统计要求,执行所述计数和/或累加统计。

在一个实施方式中,每台单机统计装置可包括:配置加载模块1111、数据包接收模块1112、数据统计模块1113、汇总数据生成模块1114和数据包发送模块1115。

其中,配置加载模块1111用于按照预定时间规则读取针对至少一个业务的配置文件,生成针对所述至少一个业务中的各个业务的配置信息。

数据包接收模块1112用于接收来自一业务服务器的数据包;所述数据包中包含一业务的业务标识、所述业务服务器的IP地址、以及所述业务的各分类项的数值。

数据统计模块1113用于根据所述业务标识确定存在针对所述业务的配置信息时,根据所述配置信息的统计要求,判断缓存中是否有所述业务的相应分类项的在先统计值,如果有,则从缓存中读取所述业务的相应分类项的统计值,将所述数据包中所述业务的相应分类项的数值分别与所读取的对应统计值进行计数和/或累加统计,将统计结果写回缓存中;否则,直接将所述数据包中所述业务的相应分类项的数值作为统计值存入缓存中。

汇总数据生成模块1114用于在达到设定的实时结果输出时间时,将本时间片的所述缓存中的至少一个业务的相应统计项的统计值按照设定的数据包格式打包,生成包含至少一个单机统计分量的单机汇总数据包;其中,每个单机统计分量包括业务标识、所述业务的统计项标识、以及所述统计项的统计值。

数据包发送模块1115用于将所述单机汇总数据包发送给汇总服务器,同时清空所述缓存。

在一个实施方式中,每台汇总统计装置可包括:数据包接收模块1121、汇总统计模块1122和结果存储模块1123。

其中,数据包接收模块1121用于接收来自至少一个单机统计服务器的单机汇总数据包,从所述单机汇总数据包解析出各单机统计分量。

汇总统计模块1122用于根据所述业务标识判断缓存中是否有所述业务的相应统计项的在先统计值,如果有,则从缓存中读取所述业务的相应统计项的统计值,将所述单机统计分量中所述统计项的统计值分别与所读取的对应统计值进行计数和/或累 加统计,将统计结果写回缓存中;否则直接将所述业务的所述统计项的统计值作为统计值写入缓存中。

结果存储模块1123用于在达到设定的实时结果输出时间时,将本时间片内所述缓存中的至少一个业务的相应统计项的统计值写入存储器中。

在又一个实施方式中,每台汇总统计装置还可进一步包括:配置加载模块1124,用于按照预定时间规则读取针对至少一个业务的配置文件,生成针对所述至少一个业务中的各个业务的配置信息。相应地,所述汇总统计模块1122可根据所述业务标识判断是否存在针对所述业务的配置信息,如果是,则根据所述配置信息的统计要求,执行所述计数和/或累加统计。

进一步地,该业务数据的统计系统还可进一步包括图9所示的业务数据的发送装置。

此外,图9所示的业务数据的发送装置和图10所示的业务数据的统计装置也可构成本发明又一实施例中的业务数据的统计系统。

本发明实施例中还提供一种业务数据的监控系统,其可包括一业务监控模块(图中未示出),以及如图10所述的业务数据的统计装置或如图11所述的业务数据的统计系统。其中,所述业务监控模块用于从存储器中读取一业务的一分类项的统计结果,将所述统计结果与预先设定的对应所述分类项的告警阈值进行比较,当达到所述告警阈值时,发出告警;和/或,从存储器中读取一业务的一分类项的统计结果,判断所述统计结果是否满足设定的反馈条件,如果满足,则将所述统计结果反馈给业务管理系统。具体实现时,所述业务监控模块可以在图10所示的业务数据的统计装置中实现,也可在图11所示的业务数据的统计系统的汇总服务器中实现。此外,也可以在第三方服务器中实现。

图12为本发明实施例中一种服务器设备的结构示意图。如图12所示,该服务器设备可包括:处理器1201、非易失性计算机可读存储器1202、输入输出控制器1203、网络通信接口1204。这些组件通过总线1205进行通信。

本实施例中,存储器1202中存储有多个程序模块,例如,操作系统1206、网络通信模块1207和应用程序1208。

处理器1201可以读取存储器1202中的应用程序中的各种模块(图中未示出)来执行服务器设备的各种功能应用以及数据处理。本实施例中的处理器1201可以为一个,也可以为多个,其可以为CPU,处理单元/模块,ASIC,逻辑模块或可编程门阵列等。

输入输出控制器1203具有显示器和输入设备,用于完成相关数据的输入、输出及 显示等。

操作系统1206包括但不限于:Android操作系统、Symbian操作系统、Windows操作系统、Linux操作系统等等。

应用程序1208可包括业务数据发送模块,该业务数据发送模块可包括图9所示装置中的各个功能模块形成的计算机可执行指令集1209及对应的元数据和启发式算法1210。这些计算机可执行指令集可以由所述处理器1201执行并完成图2所示方法或图9所示装置的功能。或者,应用程序1208可包括业务数据的单机统计模块,该业务数据的单机统计模块可包括图10所示装置中的各个功能模块形成的计算机可执行指令集1209及对应的元数据和启发式算法1210。这些计算机可执行指令集可以由所述处理器1201执行并完成图4b所示方法或图10所示装置的功能。或者,应用程序1208包括的业务数据的单机统计模块可包括图11所示系统中的单机统计装置中各个功能模块形成的计算机可执行指令集1209及对应的元数据和启发式算法1210。这些计算机可执行指令集可以由所述处理器1201执行并完成图4a所示方法或图11所示系统中的单机统计装置的功能。或者,应用程序1208也可包括业务数据的汇总统计模块,该业务数据的汇总统计模块可包括图11所示系统中的汇总统计装置中各个功能模块形成的计算机可执行指令集1209及对应的元数据和启发式算法1210。这些计算机可执行指令集可以由所述处理器1201执行并完成图8所示方法或图11所示系统中的汇总统计装置的功能。

本实施例中,网络通信接口1204与网络通信模块1206相配合完成服务器设备各种网络信号的收发,包括与其它服务器之间的网络数据交互等。

另外,本发明的每一个实施例可以通过由数据处理设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本发明。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和或内存)中执行。因此,这样的存储介质也构成了本发明。存储介质可以使用任何类型的记录方式,例如纸张存储介质(如纸带等)、磁存储介质(如软盘、硬盘、闪存等)、光存储介质(如CD-ROM等)、磁光存储介质(如MO等)等。

因此本发明还提供了一种存储介质,其中存储有数据处理程序,该数据处理程序用于执行本发明上述方法的任何一种实施例。

本发明实施例中的技术方案由于采用如下处理:

1、分时统计的方法,降低内存占用量。(由于时间间隔短,累积的数据不会占用太大的内存)。

2、数据以tlv格式进行传输,让所有业务都通用。

3、分层统计的方法,能够实现海量数据的实时统计(先做单机分量统计,然后汇总所有统计分量,保证数据量再大也能实时处理)。

因此使得本发明实施例中的技术方案具有如下特点:

一、通用的统计服务。无论业务的逻辑是什么,实现怎样的功能,都能调用本发明实施例中的业务数据发送应用程序接口(API)发送数据到本发明实施例中的统计服务器中进行统计。

二、实时的统计服务。当单机统计服务器以每秒发送一次单机汇总数据包的速度发送数据包给汇总服务器,而汇总服务器以每秒存储一次统计结果的速度进行存储的话,则只需2秒延迟即可观察到业务的各种运行状态。不需要等待业务的流水日志落地,然后推送hadoop,第二天才能看到前一天的业务数据报表。方便产品经理能够尽早做决策。实时性也非常适合实验性质的业务,能够实时得到业务的实验数据。

三、兼容多业务同时使用的统计平台。本发明能够根据业务ID区分业务流水,根据id来区分同一业务下的不同维度的统计,保证各个统计项互不干扰,保证各个业务的流水相互独立

四、海量数据的处理能力。本发明的单机统计层采用多机器并行处理,功能统一,方便平行扩展。能够根据业务方的数据量动态调整集群规模。从架构上保证拥有海量数据的处理能力。汇总层只接收单机统计层处理之后的单机统计分量。因此每个业务每个单机统计服务器每秒钟内只有1条数据,数据量峰值时也是在汇总统计服务器单机可承受的范围内。

此外,本发明是对当前Hadoop系统在统计领域的速度上的一个补充。对属性上报系统在监控领域的细粒度监控的一个补充,也是对Storm系统在实时统计领域的低成本低门槛的一个补充。只有全方位实时监控,才能做到防患于未然,保证开发和运维人员不用再加班加点的定位分析线上问题。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

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