CN106874319A - 点击量的分布式统计方法及装置 - Google Patents
点击量的分布式统计方法及装置 Download PDFInfo
- Publication number
- CN106874319A CN106874319A CN201610440296.8A CN201610440296A CN106874319A CN 106874319 A CN106874319 A CN 106874319A CN 201610440296 A CN201610440296 A CN 201610440296A CN 106874319 A CN106874319 A CN 106874319A
- Authority
- CN
- China
- Prior art keywords
- uid
- click
- server
- client
- accumulated counts
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提供一种点击量的分布式统计方法及装置,包括:客户端监听用户的点击事件;基于监听到的点击事件针对用户的点击次数进行累加计数;基于预设的时间间隔定时将累加计数结果以及对应的用户身份标识UID通过长连接上报至对应的业务服务器;业务服务器通过长连接接收各用户侧的客户端定时上报的累加计数结果以及对应的UID,对各用户侧的客户端上报的累加计数结果以及对应的UID进行汇总,得到各UID的点击总次数;将各UID在统计周期内的点击总次数上报至汇总服务器,由汇总服务器针对各业务服务器上报的各UID在统计周期内的点击总次数进行汇总,得到在统计周期内的UID总数以及对应的点击总次数。本申请可以降低点击量统计时的计算复杂度。
Description
技术领域
本申请涉及通信领域,尤其涉及一种点击量的分布式统计方法及装置。
背景技术
UV是unique visitor的缩写,是指通过互联网访问、浏览网页或者APP的独立访问用户,每一个UV可以独立的表征一个实际的访问者,使用UV作为统计量可以准确的了解单位时间内针对页面或者APP的访问者的数量,是衡量一个网站或者APP的用户使用情况的重要指标。
PV是page view的缩写,是指页面浏览量,也可以称之为点击量,可以表征用户对同一页面的累计访问量,用户每1次对网站中的某个网页执行访问均被累加一次PV。和UV一样,PV也是衡量一个网站或者APP的用户使用情况的重要指标。
传统的UV以及PV统计,通常是将用户的点击事件记录到日志文件中,然后将日志文件异步上传到服务端,由服务端对日志文件进行分析处理后得到相应的UV以及PV的统计结果。然而,由于传统的UV以及PV统计,需要将日志文件异步上传至服务端,因此存在网络开销大,上传不及时以及统计计算复杂等问题,无法满足实时统计UV以及PV的实效性要求。
发明内容
本申请提出一种点击量的分布式统计方法,该方法包括:
客户端监听用户的点击事件;
基于监听到的点击事件针对用户的点击次数进行累加计数;
基于预设的时间间隔定时将累加计数结果以及对应的用户身份标识UID通过长连接上报至对应的业务服务器,以由所述业务服务器针对与其保持长连接的各用户侧的客户端上报的累加计数结果以及对应的UID进行汇总,得到各UID对应的点击总次数;其中,所述累加计数结果在被上报至所述业务服务器后清零。
可选的,所述将累加计数结果以及对应的UID通过长连接上报至对应的业务服务器,包括:
客户端构建用于针对与所述业务服务器保持的长连接进行周期性保活的探测报文;其中,所述探测报文携带所述累加计数结果以及对应的UID;
基于所述长连接将所述探测保活报文发送至所述业务服务器。
可选的,所述方法还包括:
当接收到所述业务服务器针对所述探测报文的回应报文时,将所述累加计数结果清零。
本申请还提出一种点击量的分布式统计方法,该方法包括:
业务服务器通过与各用户侧的客户端保持的长连接接收各用户侧的客户端定时上报的针对用户的点击次数的累加计数结果以及对应的UID;
对各用户侧的客户端上报的所述累加计数结果以及对应的UID进行汇总,以得到各UID对应的点击总次数;
将各UID在预设的统计周期内的点击总次数上报至对应的汇总服务器,以由所述汇总服务器针对与其存在映射关系的各业务服务器上报的各UID在预设的统计周期内的点击总次数进行汇总,得到在所述预设的统计周期内的UID总数以及对应的点击总次数。
可选的,所述对各用户侧的客户端上报的所述累加计数结果以及对应的UID进行汇总,以得到各UID对应的点击总次数,包括:
当接收到各用户侧的客户端上报的累加计数结果以及对应的UID时,判断缓存中是否存储了该UID;
如果缓存中存储了该UID,将所述累加计数结果与所述缓存中存储的与该UID对应的点击数次相加;
如果缓存中未存储该UID,将该UID以及所述累加计数结果在缓存中进行存储。
可选的,所述将所述点击总次数上报至对应的汇总服务器,包括:
基于预设的映射算法针对各UID分别进行计算以确定与各UID对应的目标汇总服务器;
将所述点击总次数上报至确定出的所述目标汇总服务器。
可选的,所述基于预设的映射算法针对各UID分别进行计算以确定与各UID对应的目标汇总服务器,包括:
提取各UID中指定N位的取值;
将提取出的指定N位的取值与汇总服务器的总数相除取余数;
将设备编号与所述余数相同的汇总服务器确定为所述目标汇总服务器。
本申请还提出一种点击量的分布式统计装置,应用于客户端,该装置包括:
监听模块,监听用户的点击事件;
计数模块,基于监听到的点击事件针对用户的点击次数进行累加计数;
第一上报模块,基于预设的时间间隔定时将累加计数结果以及对应的用户身份标识UID通过长连接上报至对应的业务服务器,以由所述业务服务器针对与其保持长连接的各用户侧的客户端上报的累加计数结果以及对应的UID进行汇总,得到各UID对应的点击总次数;其中,所述累加计数结果在被上报至所述业务服务器后清零。
可选的,所述第一上报模块具体用于:
构建用于针对与所述业务服务器保持的长连接进行周期性保活的探测报文;其中,所述探测报文携带所述累加计数结果以及对应的UID;
基于所述长连接将所述探测保活报文发送至所述业务服务器。
可选的,所述计数模块进一步用于:
当接收到所述业务服务器针对所述探测报文的回应报文时,将所述累加计数结果清零。
本申请还提出一种点击量的分布式统计装置,应用于业务服务器,该装置包括:
接收模块,通过与各用户侧的客户端保持的长连接接收各用户侧的客户端定时上报的针对用户的点击次数的累加计数结果以及对应的UID;
汇总模块,对各用户侧的客户端上报的所述累加计数结果以及对应的UID进行汇总,以得到各UID对应的点击总次数;
第二上报模块,将各UID在预设的统计周期内的点击总次数上报至对应的汇总服务器,以由所述汇总服务器针对与其存在映射关系的各业务服务器上报的各UID在预设的统计周期内的点击总次数进行汇总,得到在所述预设的统计周期内的UID总数以及对应的点击总次数。
可选的,所述汇总模块具体用于:
当接收到各用户侧的客户端上报的累加计数结果以及对应的UID时,判断缓存中是否存储了该UID;
如果缓存中存储了该UID,将所述累加计数结果与所述缓存中存储的与该UID对应的点击数次相加;
如果缓存中未存储该UID,将该UID以及所述累加计数结果在缓存中进行存储。
可选的,所述第二上报模块具体用于:
基于预设的映射算法针对各UID分别进行计算以确定与各UID对应的目标汇总服务器;
将所述点击总次数上报至确定出的所述目标汇总服务器。
可选的,所述汇总模块进一步用于:
提取各UID中指定N位的取值;
将提取出的指定N位的取值与汇总服务器的总数相除取余数;
将设备编号与所述余数相同的汇总服务器确定为所述目标汇总服务器。
本申请还提出一种点击量的分布式统计系统,该系统包括至少一汇总服务器,与所述汇总服务器存在映射关系的若干业务服务器,以及与所述业务服务器保持长连接的若干客户端,其中:
所述客户端,监听用户的点击事件,基于监听到的点击事件针对用户的点击次数进行累加计数,并基于预设的时间间隔定时将累加计数结果以及对应的UID通过所述长连接上报至对应的业务服务器;其中,所述累加计数结果在被上报至所述业务服务器后清零;
所述业务服务器,通过与各用户侧的客户端保持的长连接接收各用户侧的客户端定时上报的所述累加计数结果以及对应的UID,对各用户侧的客户端上报的所述累加计数结果以及对应的UID进行汇总以得到各UID对应的点击总次数,并统计各UID在预设的统计周期内的点击总次数,将所述点击总次数上报至对应的汇总服务器;
所述汇总服务器,针对各业务服务器上报的各UID在预设的统计周期内的点击总次数进行汇总,以得到在所述预设的统计周期内的UID总数以及对应的点击总次数。
本申请中,提出一种点击量的分布式统计方法,通过客户端监听用户的点击事件,基于监听到的点击事件针对用户的点击次数进行累加计数,并定时将累加计数结果以及对应的用户身份标识UID通过长连接上报至对应的业务服务器;业务服务器在接收到各用户侧的客户端上报的累加计数结果以及对应的UID后,对各用户侧的客户端上报的所述累加计数结果以及对应的UID进行汇总,得到各UID对应的点击总次数,然后将各UID在预设的统计周期内的点击总次数上报至对应的汇总服务器,以由汇总服务器针对与其存在映射关系的各业务服务器上报的点击总次数进行汇总,得到在所述预设的统计周期内的UID总数以及对应的点击总次数;实现了可以利用客户端与业务服务器之间维持的长连接快速将客户端对点击量的初步统计结果上报至业务服务器进行汇总,然后由业务服务器将汇总结果上报至对应的汇总服务器作进一步的汇总以得到最终的统计结果;由于在进行点击量的统计时,不再需要上传日志文件,因此可以降低系统开销;客户端利用长连接上传初步统计结果,可以保证统计结果的实时上传,满足点击量统计时的实效性需求;而且,客户端上传的初步统计结果,可以只在与其保持了长连接的业务服务器上完成汇总,因此可以避免在服务端一侧针对客户端的初步统计结果进行全局汇总,从而可以降低点击量统计时的计算复杂度。
附图说明
图1是本申请一实施例提供的一种点击量的分布式统计方法的流程图;
图2是本申请一实施例提供的一种点击量的分布式统计系统的分布式架构图;
图3是本申请一实施例提供的一种点击量的分布式统计装置的逻辑框图;
图4是本申请一实施例提供的承载所述一种点击量的分布式统计装置的客户端的硬件结构图;
图5是本申请一实施例提供的另一种点击量的分布式统计装置的逻辑框图;
图6是本申请一实施例提供的承载所述另一种点击量的分布式统计装置的业务服务器的硬件结构图。
具体实施方式
在进行传统的UV以及PV统计时,客户端可以将用户的点击事件记录到日志文件中,并定时将前一段时间的日志文件投递给服务端,由服务端对接收到的日志文件进行统一处理,基于用户的UID(User Identification,用户身份证明)进行去重完成UV统计,以及对每一个UID对应的点击次数进行累加汇总完成PV统计。
然而,在针对一些要求用户进行频繁点击操作的运营业务(比如,要求用户频繁点击客户端上的按钮来触发系统向用户下发电子凭证的运营业务)执行UV以及PV统计的应用场景中,传统的UV以及PV统计至少存在以下缺陷:
第一方面,由于用户频繁点击的业务特性,将会存在大量的记录了用户的点击事件的日志文件,如果客户端将这些日志通过网络异步上传给服务端,网络开销较大,不仅浪费了用户的流量,占用了宝贵的带宽资源,也增加了服务端一侧的数据处理压力。
第二方面,由于是异步上传,因此会存在日志文件上传不及时的问题,从而可能会由于日志文件上传不及时,而导致统计结果的实效性较差。
第三方面,由于不同的客户端的日志文件被统一上传至服务端,因此服务端在基于用户的UID进行去重时,去重的范围将是所有接收到的日志文件,如果日志文件数量巨大,这无形中增加了服务端在进行UV统计时的计算复杂度。
有鉴于此,本申请提出一种点击量的分布式统计方法,通过客户端监听用户的点击事件,基于监听到的点击事件针对用户的点击次数进行累加计数,并定时将累加计数结果以及对应的用户身份标识UID通过长连接上报至对应的业务服务器;业务服务器在接收到各用户侧的客户端上报的累加计数结果以及对应的UID后,对各用户侧的客户端上报的所述累加计数结果以及对应的UID进行汇总,得到各UID对应的点击总次数,然后将各UID在预设的统计周期内的点击总次数上报至对应的汇总服务器,以由汇总服务器针对与其存在映射关系的各业务服务器上报的点击总次数进行汇总,得到在所述预设的统计周期内的UID总数以及对应的点击总次数;实现了可以利用客户端与业务服务器之间维持的长连接快速将客户端对点击量的初步统计结果上报至业务服务器进行汇总,然后由业务服务器将汇总结果上报至对应的汇总服务器作进一步的汇总以得到最终的统计结果;由于在进行点击量的统计时,不再需要上传日志文件,因此可以降低系统开销;客户端利用长连接上传初步统计结果,可以保证统计结果的实时上传,满足点击量统计时的实效性需求;而且,客户端上传的初步统计结果,可以只在与其保持了长连接的业务服务器上完成汇总,因此可以避免在服务端一侧针对客户端的初步统计结果进行全局汇总,从而可以降低点击量统计时的计算复杂度。
下面通过具体实施例并结合具体的应用场景对本申请进行描述。
请参考图1,图1是本申请一实施例提供的一种点击量的分布式统计方法,所述方法执行以下步骤:
步骤101,客户端监听用户的点击事件;
步骤102,客户端基于监听到的点击事件针对用户的点击次数进行累加计数;
上述客户端,可以包括面向用户提供特定业务的客户端软件;上述业务服务器,可以包括与上述客户端实现业务对接,面向上述客户端提供服务的服务器;
例如,当上述业务为支付业务时,上述客户端可以是面向用户提供支付服务的APP(比如支付宝)或者web客户端;而上述业务服务器则可以是面向该客户端提供支付业务对接的作为支付平台的物理服务器。
在本例中,上述客户端在进行UV以及PV统计时,可以在后台使能用于对用户的点击次数进行累加计数的计数器,并通过前台实时监听用户的点击事件。
其中,在实际应用中,上述点击事件可以包括触摸事件以及鼠标事件;例如,当承载上述客户端的硬件为PC主机时,此时上述点击事件可以包括上述客户端在前台监听到的用户的单击鼠标事件;而当承载上述客户端的硬件为触摸屏终端时,此时上述点击事件可以包括上述客户端在前台监听到的用户的点击触摸事件。
当上述客户端在前台监听到用户的点击事件时,一方面,可以将与该用户对应的UID在后台保存,另一方面,可以将上述计数器的保留值加一,并基于后续监听到的点击事件对该计数器记录的用户的点击次数进行累加计数。
步骤103,客户端基于预设的时间间隔定时将累加计数结果以及对应的UID通过长连接上报至对应的业务服务器;
在本例中,上述客户端与上述业务服务器之间可以预先建立用于传输业务数据的长连接。
其中,该长连接可以是TCP(Transfer Control Protocol,传输控制协议)长连接。上述客户端与上述业务服务器之间可以通过互联网交互TCP协议的握手报文,完成TCP三次握手来建立TCP连接,并通过构建用于对上述TCP连接进行周期性保活的探测报文,在维持上述TCP长连接。
在本例中,上述客户端可以预先设定一时间间隔,并基于该时间间隔,定时将计数器针对用户的点击次数的累加计数结果以及对应的UID通过维持的该长连接上报至对应的业务服务器。比如,上述时间间隔可以是10秒,即上述客户端可以每10秒向上述业务服务器上报一次累加计数结果。
在示出的一种实施方式中,上述客户端在通过上述长连接定时上报计数器的累加计数结果以及对应的UID时,可以将上述累加计数结果以及对应的UID承载于针对上述长连接进行周期性保活的探测报文中上报至上述业务服务器。
其中,上述探测报文,可以是TCP协议层实现的Keepalive报文,也可以是基于应用层独立实现的心跳包,在本例中不进行特别限定。
上述客户端可以基于上述时间间隔,周期性的构建上述探测报文,然后将上述计数器的累加计数结果以及对应的UID携带在该探测报文中(比如,可以携带在该探测报文的报文头中),然后将探测报文发送至上述业务服务器。
通过这种方式,使得上述客户端可以利用上述长连接现有的保活机制,向上述业务服务器周期性的上报上述累加计数结果以及对应的UID,而不需要单独构建报文。
当上述业务服务器收到上述客户端发送的检测报文后,通常可以向上述客户端返回一个对应的回应报文;如果上述客户端收到了业务服务器返回的回应报文后,此时本轮上报结束,上述客户端可以将上述计数器的累加计数结果清零,并开始新一轮的针对用户的点击次数的累加计数统计。
可见,通过这种方式,在进行UV以及PV统计时,可以由上述客户端在其本地完成针对PV的初步统计,并将针对PV的初步统计结果通过长连接上报至对应的业务服务器,由服务器基于UID进行去重完成UV统计,从而使得在进行UV以及PV的统计时,上述客户端可以不再需要通过日志文件记录用户的点击事件,以及向服务端上传日志文件,因此可以降低系统的开销。而且,由于上述客户端针对PV的初步统计结果,是基于与业务服务端保持的长连接上传至业务服务器的,因此与异步的上传相比,具有更高的实时性,从而可以保证UV以及PV统计的实效性需求。
步骤104,业务服务器通过与各用户侧的客户端保持的长连接接收各用户侧的客户端定时上报的针对用户的点击次数的累加计数结果以及对应的UID;
步骤105,业务服务器对各用户侧的客户端上报的所述累加计数结果以及对应的UID进行汇总,以得到各UID对应的点击总次数;
在本例中,由于上述业务服务器通常可以与若干不同的用户侧的客户端实现业务对接,因此在本例中,上述业务服务器可以与若干不同的客户端分别维持长连接。
上述业务服务器可以通过上述长连接接收各用户侧的客户端上报的累加计数结果以及对应的UID,然后对各用户侧的客户端上报的累加计数结果进行汇总,以得到各UID对应的点击总次数,即各UID对应的PV值。
其中,需要说明的是,上述业务服务器与不同的客户端维持的长连接的数量,通常取决于上述业务服务器具体的业务处理性能,在本例中不进行特别限定。
在示出的一种实施方式中,上述业务服务器对各用户侧的客户端上报的累加计数结果以及对应的UID进行汇总时,可以基于用户的UID进行去重来实现。
上述业务服务器可以在其本地的存储空间中,划分出一部分缓存用于存储各用户侧的客户端上报的累加计数结果以及对应的UID。
其中,在缓存中存储各用户侧的客户端上报的累加计数结果以及对应的UID时,可以基于<UID,次数>的数据对的形式来进行存储
当上述业务服务器接收到各用户侧的客户端上报的累加计数结果以及对应的UID时,可以判断缓存中是否已存储了该UID。
如果缓存中存储了该UID,则可以直接将上述客户端上报的该累加计数结果与缓存中存储的与该UID对应的数据对中的点击数次相加,同时该数据对中的UID保持不变。
反之,如果缓存中未存储该UID,此时该UID可能为首次上报,上述业务服务器可以将UID以及对应的累加计数结果以上述数据对的形式在缓存中进行存储。
可见,通过这种方式,可以避免上述缓存中存储了相同的UID,同时可以对每一个UID对应的点击次数进行累加。而且,由于上述业务服务器在进行UID去重计算时,仅需要面对与自身维持长连接的用户侧的客户端上报的初步统计结果进行计算,并不会针对所有用户侧的客户端的初步统计结果进行全局计算,因此在本例中,上述业务服务器在进行UID去重计算时所处理的数据量将会减少,从而可以降低上述业务服务器在进行UID去重计算时的复杂度。
步骤106,业务服务器将各UID在预设的统计周期内的点击总次数上报至对应的汇总服务器;
在本例中,在进行UV以及PV统计时,通常会基于实际的业务需求,预先设定一个统计周期。
其中,上述统计周期,通常包括由一个起始时间戳,以及结束时间戳构成的统计区间;例如,当上述统计周期被设置每天,那么该统计周期则可以是由0点所在的时间戳,与24点所在的时间戳构成的统计区间。
在这种情况下,上述业务服务器在基于用户的UID进行去重计算的过程中,可以记录各客户端在上报上述累加计数结果以及对应的UID时的精确时间,然后仅针对各用户侧的客户端上报的数据中,落入上述统计区间的数据进行去重计算,以统计出设定的上述统计周期内的点击总次数。
例如,假设上述统计周期为每天,为一个由0点所在的时间戳,与24点所在的时间戳构成的统计区间;上述业务服务器可以记录各客户端在上报上述累加计数结果以及对应的UID时的精确时间,然后针对各用户侧的客户端在每天0点至24点上报的累加计数结果以及对应的UID进行去重计算,以统计出各UID在每一天内的点击总次数。相似的,如果上述统计周期为每分钟,为一个由0秒所在的时间戳,与60秒所在的时间戳构成的统计区间,上述业务服务器可以针对各用户侧的客户端在每分钟0秒至60秒上报的累加计数结果以及对应的UID进行去重计算,以统计出各UID在每一分钟内的点击总次数。
在本例中,当上述业务服务器统计出各UID在预先设定的上述统计周期内的点击总次数后,可以将各UID在上述统计周期内的点击总次数上报至对应的汇总服务器。
其中,上述汇总服务器,用于对各业务服务器上报的点击总次数进一步进行汇总,以得到在上述预先设定的统计周期内的UID总数以及对应的点击总次数。
需要说明的是,在实际应用中,业务平台中的业务服务器的数量可能远大与汇总服务器的数量,因此在本例中,需要将若干台业务服务器映射至同一台汇总服务器上。
其中,在将若干台业务服务器映射至同一台汇总服务器上时,所采用的映射算法在本例中不进行特别限定。
在示出的一种实施方式中,在将若干台业务服务器映射至同一台汇总服务器上时所采用的映射算法,可以是从业务服务器需要上报的各UID中提取指定N位的取值(比如可以去中间三位),然后将提取出的该指定N位的取值与业务平台中的汇总服务器的总数量相除取余数,然后基于计算出的该余数来为业务平台中的汇总服务器设置设备编号,并将该UID映射至设备编号与该余数相同的汇总服务器上。
其中,上述N的取值,在本例中不进行特别限定,在实际应用中可以基于业务平台中的汇总服务器的总数量来设定。
当映射完成后,上述业务服务器需要向汇总服务器上报任一UID的点击总次数时,可以从该UID中提取指定N位的取值,并将该指定N位的取值与汇总服务器的总数相除取余数,然后查询设备编号与该余数相同的汇总服务器,将该汇总服务器确定为与该UID存在映射关系的目标汇总服务器,并将该UID对应的点击总次数上报至该目标汇总服务器。
通过这种方式,可以将指定N位的取值不同的UID,分别映射至不同的汇总服务器。
当然,上述映射算法除了以上描述的通过从UID中取指定N位的取值与汇总服务器的总数相除取余数来完成映射以外,在实际应用中,也可以使用其它类似的映射算法,在本例中不再一一列举。
在本例中,上述业务服务器在向与自身存在映射关系的汇总服务器上报各UID对应的点击总次数时,可以利用服务器之间现有的参数传递机制来完成。
例如,在一种实现方式中,上述业务服务器可以将各UID对应的点击总次数记录在日志文件中,然后以日志文件的形式传递至对应的汇总服务器。在另一中实现方式中,上述业务服务器可以独立构建一个用于承载各UID对应的点击总次数的消息,然后以消息的形式传递至对应的汇总服务器,在本例中不再一一列举。
步骤107,汇总服务器针对与其存在映射关系的各业务服务器上报的各UID在预设的统计周期内的点击总次数进行汇总,得到在所述预设的统计周期内的UID总数以及对应的点击总次数。
在本例中,业务平台中的汇总服务器的数量,通常取决于与业务服务器进行业务对接的客户端的总数量,即用户数量。当用户数的数量级较小,一台汇总服务器就可以完成针对各业务服务器上报的各UID的点击总次数的汇总,那么此时在业务平台对应的服务器集群中部署一台汇总服务器即可。
相反,如果用户数的数量级较大,一台汇总服务器无法完成针对各业务服务器上报的各UID的点击总次数的汇总,那么此时可以在业务平台对应的服务器集群中部署多台汇总服务器。
当汇总服务器接收到与其存在映射关系的各业务服务器上报的各UID在预先设定的统计周期内的点击总次数后,可以对各业务服务器上报的各UID对应的点击总次数进行汇总,以得到在上述统计周期内的UV总数(即UID的总数量)以及对应的PV总数(即各UID对应的点击总次数的累加值)。
其中,当业务平台对应的服务器集群中仅部署一台汇总服务器时,此时所有的UID均映射至该汇总服务器,汇总服务器可以统计各业务服务器上报的UID的总数量得到UV总数,以及针对各业务服务器上报的各UID的点击总次数计算累加值得到PV总数。当然,如果业务平台对应的服务器集群中仅部署了多台汇总服务器时,此时可以从该多台汇总服务器中选择出任意一台汇总服务器,对其它汇总服务器接收到的由与其存在映射关系的业务服务器上报的各UID的点击总次数分别进行汇总后累加,得到最终的UV总数以及PV总数。
在本例中,当汇总服务器对各业务服务器上报的各UID的点击次数进一步进行汇总,得到最终的UV以及PV的统计结果后,可以将该UV以及PV的统计结果写入到存储中,后续该业务平台中的统计数据展现装置可以从该存储中读取最终的UV以及PV的统计结果,用于进行业务展现,以供业务的运营人员对业务的运营状况进行评估。
请参见图2,图2为本例示出的一种点击量的分布式统计系统的架构图。
在图2示出上述系统为一种分布式的架构,包括至少一台汇总服务器,若干台与上述汇总服务器存在映射关系的若干台业务服务器,以及与上述业务服务器保持长连接的若干客户端。
其中:
上述客户端,可以监听用户的点击事件,基于监听到的点击事件针对用户的点击次数进行累加计数,并基于预设的时间间隔定时将累加计数结果以及对应的UID通过所述长连接上报至对应的业务服务器;其中,所述累加计数结果在被上报至所述业务服务器后清零;
通过这种方式,在进行UV以及PV统计时,上述客户端可以基于监听到的用户的点击事件完成针对PV的初步统计,并将初步统计结果通过长连接上报至与该客户端进行业务对接的业务服务器。
上述业务服务器,通过与各用户侧的客户端保持的长连接接收各用户侧的客户端定时上报的所述累加计数结果以及对应的UID,对各用户侧的客户端上报的所述累加计数结果以及对应的UID进行汇总以得到各UID对应的点击总次数,并统计各UID在预设的统计周期内的点击总次数,将所述点击总次数上报至对应的汇总服务器;
通过这种方式,上述业务服务器可以对各用户侧的客户端上报的针对PV的初步统计结果进行汇总,以统计出在预先设定的统计周期内各UID对应的点击总次数,并将汇总结果上报至与其存在映射关系的汇总服务器。
上述汇总服务器,针对各业务服务器上报的各UID在预设的统计周期内的点击总次数进行汇总,以得到在所述预设的统计周期内的UID总数以及对应的PV总数。
通过这种方式,上述汇总服务器可以对与其存在映射关系各用户侧的客户端上报的各UID在预先设定的统计周期内的PV总数进一步进行汇总,以统计出在上述统计周期内的UV总数以及PV总数。
通过以上实施例可见,本申请通过对传统的UV以及PV统计流程进行改进,提出一种UV以及PV的分布式统计架构,由用户侧的客户端完成针对PV的初步统计,并由用户侧的客户端将初步统计结果通过长连接上报至对应的业务服务器。
业务服务器在接收到与其保持长连接的各用户侧的客户端上报的PV的初步统计结果后,可以对各用户侧的客户端上报的PV的初步统计结果进行汇总,并由业务服务器将汇总结果上报至与其存在映射关系的汇总服务器进行进一步的汇总,完成最终的UV以及PV的统计。
与传统的UV以及PV的统计流程相比,本申请提出的UV以及PV的分布式统计架构,至少存在如下优点:
第一方面,由于在进行UV以及PV的统计时,不再需要上传日志文件,因此可以降低系统开销;
第二方面,客户端可以利用长连接上传初步统计结果,不再进行异步传输,因此可以保证统计结果的实时上传,满足点击量统计时的实效性需求;
第三方面,客户端上传的初步统计结果,可以只在与其保持了长连接的业务服务器上完成汇总,因此可以避免在服务端一侧针对客户端的初步统计结果进行全局汇总,从而可以降低点击量统计时的计算复杂度。
与上述方法实施例相对应,本申请还提供了装置的实施例。
请参见图3,本申请提出一种点击量的分布式统计装置30,应用于客户端;其中,请参见图4,作为承载所述点击量的分布式统计装置30的客户端所涉及的硬件架构中,通常包括CPU、内存、非易失性存储器、网络接口以及内部总线等;以软件实现为例,所述点击量的分布式统计装置30通常可以理解为加载在内存中的计算机程序,通过CPU运行之后形成的软硬件相结合的逻辑装置,所述装置30包括:
监听模块301,监听用户的点击事件;
计数模块302,基于监听到的点击事件针对用户的点击次数进行累加计数;
第一上报模块303,基于预设的时间间隔定时将累加计数结果以及对应的用户身份标识UID通过长连接上报至对应的业务服务器,以由所述业务服务器针对与其保持长连接的各用户侧的客户端上报的累加计数结果以及对应的UID进行汇总,得到各UID对应的点击总次数;其中,所述累加计数结果在被上报至所述业务服务器后清零。
在本例中,所述第一上报模块303具体用于:
构建用于针对与所述业务服务器保持的长连接进行周期性保活的探测报文;其中,所述探测报文携带所述累加计数结果以及对应的UID;
基于所述长连接将所述探测保活报文发送至所述业务服务器。
在本例中,所述计数模块302进一步用于:
当接收到所述业务服务器针对所述探测报文的回应报文时,将所述累加计数结果清零。
请参见图5,本申请提出一种点击量的分布式统计装置50,应用于业务服务器;其中,请参见图6,作为承载所述点击量的分布式统计装置50的业务服务器所涉及的硬件架构中,通常包括CPU、内存、非易失性存储器、网络接口以及内部总线等;以软件实现为例,所述点击量的分布式统计装置50通常可以理解为加载在内存中的计算机程序,通过CPU运行之后形成的软硬件相结合的逻辑装置,所述装置50包括:
接收模块501,通过与各用户侧的客户端保持的长连接接收各用户侧的客户端定时上报的针对用户的点击次数的累加计数结果以及对应的UID;
汇总模块502,对各用户侧的客户端上报的所述累加计数结果以及对应的UID进行汇总,以得到各UID对应的点击总次数;
第二上报模块503,将各UID在预设的统计周期内的点击总次数上报至对应的汇总服务器,以由所述汇总服务器针对与其存在映射关系的各业务服务器上报的各UID在预设的统计周期内的点击总次数进行汇总,得到在所述预设的统计周期内的UID总数以及对应的点击总次数。
在本例中,所述汇总模块502具体用于:
当接收到各用户侧的客户端上报的累加计数结果以及对应的UID时,判断缓存中是否存储了该UID;
如果缓存中存储了该UID,将所述累加计数结果与所述缓存中存储的与该UID对应的点击数次相加;
如果缓存中未存储该UID,将该UID以及所述累加计数结果在缓存中进行存储。
在本例中,所述第二上报模块503具体用于:
基于预设的映射算法针对各UID分别进行计算以确定与各UID对应的目标汇总服务器;
将所述点击总次数上报至确定出的所述目标汇总服务器。
在本例中,所述汇总模块503进一步用于:
提取各UID中指定N位的取值;
将提取出的指定N位的取值与汇总服务器的总数相除取余数;
将设备编号与所述余数相同的汇总服务器确定为所述目标汇总服务器。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (15)
1.一种点击量的分布式统计方法,其特征在于,该方法包括:
客户端监听用户的点击事件;
基于监听到的点击事件针对用户的点击次数进行累加计数;
基于预设的时间间隔定时将累加计数结果以及对应的用户身份标识UID通过长连接上报至对应的业务服务器,以由所述业务服务器针对与其保持长连接的各用户侧的客户端上报的累加计数结果以及对应的UID进行汇总,得到各UID对应的点击总次数;其中,所述累加计数结果在被上报至所述业务服务器后清零。
2.根据权利要求1所述的方法,其特征在于,所述将累加计数结果以及对应的UID通过长连接上报至对应的业务服务器,包括:
客户端构建用于针对与所述业务服务器保持的长连接进行周期性保活的探测报文;其中,所述探测报文携带所述累加计数结果以及对应的UID;
基于所述长连接将所述探测保活报文发送至所述业务服务器。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当接收到所述业务服务器针对所述探测报文的回应报文时,将所述累加计数结果清零。
4.一种点击量的分布式统计方法,其特征在于,该方法包括:
业务服务器通过与各用户侧的客户端保持的长连接接收各用户侧的客户端定时上报的针对用户的点击次数的累加计数结果以及对应的UID;
对各用户侧的客户端上报的所述累加计数结果以及对应的UID进行汇总,以得到各UID对应的点击总次数;
将各UID在预设的统计周期内的点击总次数上报至对应的汇总服务器,以由所述汇总服务器针对与其存在映射关系的各业务服务器上报的各UID在预设的统计周期内的点击总次数进行汇总,得到在所述预设的统计周期内的UID总数以及对应的点击总次数。
5.根据权利要求1所述的方法,其特征在于,所述对各用户侧的客户端上报的所述累加计数结果以及对应的UID进行汇总,以得到各UID对应的点击总次数,包括:
当接收到各用户侧的客户端上报的累加计数结果以及对应的UID时,判断缓存中是否存储了该UID;
如果缓存中存储了该UID,将所述累加计数结果与所述缓存中存储的与该UID对应的点击数次相加;
如果缓存中未存储该UID,将该UID以及所述累加计数结果在缓存中进行存储。
6.根据权利要求1所述的方法,其特征在于,所述将所述点击总次数上报至对应的汇总服务器,包括:
基于预设的映射算法针对各UID分别进行计算以确定与各UID对应的目标汇总服务器;
将所述点击总次数上报至确定出的所述目标汇总服务器。
7.根据权利要求6所述的方法,其特征在于,所述基于预设的映射算法针对各UID分别进行计算以确定与各UID对应的目标汇总服务器,包括:
提取各UID中指定N位的取值;
将提取出的指定N位的取值与汇总服务器的总数相除取余数;
将设备编号与所述余数相同的汇总服务器确定为所述目标汇总服务器。
8.一种点击量的分布式统计装置,其特征在于,应用于客户端,该装置包括:
监听模块,监听用户的点击事件;
计数模块,基于监听到的点击事件针对用户的点击次数进行累加计数;
第一上报模块,基于预设的时间间隔定时将累加计数结果以及对应的用户身份标识UID通过长连接上报至对应的业务服务器,以由所述业务服务器针对与其保持长连接的各用户侧的客户端上报的累加计数结果以及对应的UID进行汇总,得到各UID对应的点击总次数;其中,所述累加计数结果在被上报至所述业务服务器后清零。
9.根据权利要求8所述的装置,其特征在于,所述第一上报模块具体用于:
构建用于针对与所述业务服务器保持的长连接进行周期性保活的探测报文;其中,所述探测报文携带所述累加计数结果以及对应的UID;
基于所述长连接将所述探测保活报文发送至所述业务服务器。
10.根据权利要求9所述的装置,其特征在于,所述计数模块进一步用于:
当接收到所述业务服务器针对所述探测报文的回应报文时,将所述累加计数结果清零。
11.一种点击量的分布式统计装置,其特征在于,应用于业务服务器,该装置包括:
接收模块,通过与各用户侧的客户端保持的长连接接收各用户侧的客户端定时上报的针对用户的点击次数的累加计数结果以及对应的UID;
汇总模块,对各用户侧的客户端上报的所述累加计数结果以及对应的UID进行汇总,以得到各UID对应的点击总次数;
第二上报模块,将各UID在预设的统计周期内的点击总次数上报至对应的汇总服务器,以由所述汇总服务器针对与其存在映射关系的各业务服务器上报的各UID在预设的统计周期内的点击总次数进行汇总,得到在所述预设的统计周期内的UID总数以及对应的点击总次数。
12.根据权利要求11所述的装置,其特征在于,所述汇总模块具体用于:
当接收到各用户侧的客户端上报的累加计数结果以及对应的UID时,判断缓存中是否存储了该UID;
如果缓存中存储了该UID,将所述累加计数结果与所述缓存中存储的与该UID对应的点击数次相加;
如果缓存中未存储该UID,将该UID以及所述累加计数结果在缓存中进行存储。
13.根据权利要求11所述的装置,其特征在于,所述第二上报模块具体用于:
基于预设的映射算法针对各UID分别进行计算以确定与各UID对应的目标汇总服务器;
将所述点击总次数上报至确定出的所述目标汇总服务器。
14.根据权利要求13所述的装置,其特征在于,所述汇总模块进一步用于:
提取各UID中指定N位的取值;
将提取出的指定N位的取值与汇总服务器的总数相除取余数;
将设备编号与所述余数相同的汇总服务器确定为所述目标汇总服务器。
15.一种点击量的分布式统计系统,其特征在于,该系统包括至少一汇总服务器,与所述汇总服务器存在映射关系的若干业务服务器,以及与所述业务服务器保持长连接的若干客户端,其中:
所述客户端,监听用户的点击事件,基于监听到的点击事件针对用户的点击次数进行累加计数,并基于预设的时间间隔定时将累加计数结果以及对应的UID通过所述长连接上报至对应的业务服务器;其中,所述累加计数结果在被上报至所述业务服务器后清零;
所述业务服务器,通过与各用户侧的客户端保持的长连接接收各用户侧的客户端定时上报的所述累加计数结果以及对应的UID,对各用户侧的客户端上报的所述累加计数结果以及对应的UID进行汇总以得到各UID对应的点击总次数,并统计各UID在预设的统计周期内的点击总次数,将所述点击总次数上报至对应的汇总服务器;
所述汇总服务器,针对各业务服务器上报的各UID在预设的统计周期内的点击总次数进行汇总,以得到在所述预设的统计周期内的UID总数以及对应的点击总次数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610440296.8A CN106874319A (zh) | 2016-06-17 | 2016-06-17 | 点击量的分布式统计方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610440296.8A CN106874319A (zh) | 2016-06-17 | 2016-06-17 | 点击量的分布式统计方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106874319A true CN106874319A (zh) | 2017-06-20 |
Family
ID=59239428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610440296.8A Pending CN106874319A (zh) | 2016-06-17 | 2016-06-17 | 点击量的分布式统计方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106874319A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107346498A (zh) * | 2017-06-25 | 2017-11-14 | 深圳有麦科技有限公司 | 一种活跃数据的上报方法及其系统 |
CN108900619A (zh) * | 2018-07-06 | 2018-11-27 | 阿里巴巴集团控股有限公司 | 一种独立访客统计方法及装置 |
CN109684381A (zh) * | 2018-12-20 | 2019-04-26 | 恒生电子股份有限公司 | 数据热度统计方法及装置 |
CN109725852A (zh) * | 2018-11-26 | 2019-05-07 | 福建天泉教育科技有限公司 | 一种限流计数的优化方法及终端 |
CN110516184A (zh) * | 2019-05-27 | 2019-11-29 | 广州起妙科技有限公司 | 一种统计uv数量的模拟运算方法 |
CN112699021A (zh) * | 2020-12-08 | 2021-04-23 | 网易(杭州)网络有限公司 | 信息处理方法、装置、终端设备和服务器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101631036A (zh) * | 2008-07-14 | 2010-01-20 | 中兴通讯股份有限公司 | 网站点击量统计方法及设备 |
KR20110070366A (ko) * | 2009-12-18 | 2011-06-24 | 에스케이 텔레콤주식회사 | 메타데이터를 이용한 순방문자수 계산시스템 및 이의 제어방법 |
CN103595973A (zh) * | 2013-11-28 | 2014-02-19 | 惠州华阳通用电子有限公司 | 一种车辆实时音视频监控系统及方法 |
CN104951517A (zh) * | 2015-05-29 | 2015-09-30 | 小米科技有限责任公司 | 行为日志统计方法及装置 |
CN105468690A (zh) * | 2015-11-17 | 2016-04-06 | 中国建设银行股份有限公司 | 一种库存数据处理方法和装置 |
-
2016
- 2016-06-17 CN CN201610440296.8A patent/CN106874319A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101631036A (zh) * | 2008-07-14 | 2010-01-20 | 中兴通讯股份有限公司 | 网站点击量统计方法及设备 |
KR20110070366A (ko) * | 2009-12-18 | 2011-06-24 | 에스케이 텔레콤주식회사 | 메타데이터를 이용한 순방문자수 계산시스템 및 이의 제어방법 |
CN103595973A (zh) * | 2013-11-28 | 2014-02-19 | 惠州华阳通用电子有限公司 | 一种车辆实时音视频监控系统及方法 |
CN104951517A (zh) * | 2015-05-29 | 2015-09-30 | 小米科技有限责任公司 | 行为日志统计方法及装置 |
CN105468690A (zh) * | 2015-11-17 | 2016-04-06 | 中国建设银行股份有限公司 | 一种库存数据处理方法和装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107346498A (zh) * | 2017-06-25 | 2017-11-14 | 深圳有麦科技有限公司 | 一种活跃数据的上报方法及其系统 |
WO2019000498A1 (zh) * | 2017-06-25 | 2019-01-03 | 深圳有麦科技有限公司 | 一种活跃数据的上报方法及其系统 |
CN108900619A (zh) * | 2018-07-06 | 2018-11-27 | 阿里巴巴集团控股有限公司 | 一种独立访客统计方法及装置 |
CN108900619B (zh) * | 2018-07-06 | 2022-01-11 | 创新先进技术有限公司 | 一种独立访客统计方法及装置 |
CN109725852A (zh) * | 2018-11-26 | 2019-05-07 | 福建天泉教育科技有限公司 | 一种限流计数的优化方法及终端 |
CN109684381A (zh) * | 2018-12-20 | 2019-04-26 | 恒生电子股份有限公司 | 数据热度统计方法及装置 |
CN110516184A (zh) * | 2019-05-27 | 2019-11-29 | 广州起妙科技有限公司 | 一种统计uv数量的模拟运算方法 |
CN112699021A (zh) * | 2020-12-08 | 2021-04-23 | 网易(杭州)网络有限公司 | 信息处理方法、装置、终端设备和服务器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106874319A (zh) | 点击量的分布式统计方法及装置 | |
US20200287794A1 (en) | Intelligent autoscale of services | |
US10277480B2 (en) | Method, apparatus, and system for determining a location corresponding to an IP address | |
US8719452B1 (en) | Correction of client-assigned timestamps | |
US10229175B2 (en) | High-throughput extract-transform-load (ETL) of program events for subsequent analysis | |
US8832330B1 (en) | Analysis of storage system latency by correlating activity of storage system components with latency measurements | |
US8868727B2 (en) | Methods and computer program products for storing generated network application performance data | |
US20150170070A1 (en) | Method, apparatus, and system for monitoring website | |
CN102035696B (zh) | 一种网站访问性能监测方法、装置及系统 | |
US11363046B2 (en) | Network operation application monitoring | |
US20150341455A1 (en) | Method and apparatus for monitoring website access data | |
US8438276B1 (en) | Method of monitoring network and application performance by analyzing web clients and web servers | |
WO2017092582A1 (zh) | 一种数据处理方法和装置 | |
US20050076111A1 (en) | System and method for relating aborted client accesses of data to quality of service provided by a server in a client-server network | |
CN105608517B (zh) | 基于流的业务交易性能管理及可视化方法和装置 | |
CN106933724A (zh) | 一种分布式信息追踪系统、信息处理方法及装置 | |
CN108880934B (zh) | 一种基于区块链的数据流量统计方法和装置 | |
CN106027595A (zh) | 用于cdn节点的访问日志处理方法及系统 | |
CN112260889B (zh) | 一种基于Linux的进程流量监控方法、系统及设备 | |
CN108268357A (zh) | 实时数据处理方法和装置 | |
CN104202418B (zh) | 为内容提供商推荐商业的内容分发网络的方法和系统 | |
US9736215B1 (en) | System and method for correlating end-user experience data and backend-performance data | |
US20080228690A1 (en) | System and method for calculating a metric of a sub-transaction on an IP network | |
WO2023221947A1 (zh) | 云应用的数据传输方法、计算设备及计算机存储介质 | |
CN103916463B (zh) | 一种网络访问统计分析方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170620 |