CN105227386B - 用于分群体统计在线用户数的方法、装置及系统 - Google Patents
用于分群体统计在线用户数的方法、装置及系统 Download PDFInfo
- Publication number
- CN105227386B CN105227386B CN201410263816.3A CN201410263816A CN105227386B CN 105227386 B CN105227386 B CN 105227386B CN 201410263816 A CN201410263816 A CN 201410263816A CN 105227386 B CN105227386 B CN 105227386B
- Authority
- CN
- China
- Prior art keywords
- user group
- user
- client
- characteristic
- group
- 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.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种用于分群体统计在线用户数的方法和装置、以及一种用于分群体统计在线用户数的系统。其中所述用于分群体统计在线用户数的方法包括:接入服务器接收客户端的访问请求,并与所述客户端保持长连接状态;接入服务器根据所述访问请求包含的信息确定所述客户端所属的用户群体,并对该用户群体的当前在线用户数目执行加一操作;所述长连接关闭时,接入服务器对所述用户群体的当前在线用户数目执行减一操作。采用本申请提供的方法,不需要引入状态服务器,直接由接入服务器完成所述各个用户群体的当前在线用户数目的统计;在降低硬件成本的同时,保证了统计的实时性和准确性,并且可以对外部的查询请求做出快速、实时响应。
Description
技术领域
本申请涉及在线用户数目的统计方法,具体涉及一种用于分群体统计在线用户数的方法。本申请同时提供一种用于分群体统计在线用户数的装置、以及一种用于分群体统计在线用户数的系统。
背景技术
在移动互联网崛起的大背景下,很多互联网公司都研发了自己的消息推送系统,通过该系统将营销、通知等消息及时准确地发送到用户的终端设备,让用户能够尽早获取所需的资讯信息。消息推送系统通常采用轮询或者长连接两种实现方式。
其中,基于长连接的消息推送系统的基本工作原理是这样的:客户端与服务器建立数据连接并发送请求后,服务器一侧会处理用户的请求并根据需要返回应答,此后,该数据连接并不会立即关闭,而是处于长连接状态,当服务器一侧有新的数据时可以通过该连接直接向客户端下发数据。
一个消息推送系统可以同时接入多种客户端的请求,每个客户端又有多个版本,也就是说根据客户端请求的版本等参数以及其他信息,可以将客户端连接归入不同的用户群体中,而每个用户群体都有自己的群体特征。基于运营和决策的需要,有时需要知道每个用户群体当前实际接入的用户请求的规模,即:属于某个用户群体的当前同时在线的用户数目,从而为版本演进、营销效果评估等商业决策提供依据。
针对上述需求,目前普遍采用的解决方案是采用接入服务器和状态服务器分工协作的方式。即:接入服务器负责将来自客户端的访问请求发送给后端的应用服务器,并将后端应用服务器推送的信息转发给所述客户端,同时接入服务器还负责定时向状态服务器批量上报用户的状态信息,包括用户的上线和下线,而状态服务器则负责维护一张用户状态表并根据接入服务器的定时上报更新该表。如果要查询特定用户群体的当前在线用户数,通常要遍历状态服务器维护的状态表,从中筛选出符合特征的用户群体,并根据需要做聚合操作,最后输出查询结果。
上述通过引入状态服务器、并由状态服务器接收接入服务器定时上报的用户状态信息来维护当前用户在线状态的方法,存在以下几个问题:
(1)为保证可用性,状态服务器通常以集群方式提供,一方面提高了硬件成本,另一方面由于引入新的集群会增加整体架构的复杂度,也会相应提高部署和维护的成本;
(2)前端接入服务器通过定时上报的方式通知状态服务器增量用户的状态更新,两者之间难免存在延时,特别是当接入服务器由于掉电、宕机或其他软件故障导致更新不及时时,状态服务器记录的用户状态表往往和真实状态之间存在偏差,即:无法实时、正确地反映当前在线用户状态;
(3)当需要查询某个或者某类用户群体的在线用户总数时,需要遍历状态服务器维护的状态表,并执行匹配、筛选等处理,整个处理过程操作复杂、响应速度慢。
发明内容
本申请提供一种用于分群体统计在线用户数的方法,以解决现有技术采用接入服务器与状态服务器分工协作方式导致的无法实时准确统计当前在线用户数、对查询响应速度慢、硬件成本较高的问题。本申请另外提供一种用于分群体统计在线用户数的装置,以及一种用于分群体统计在线用户数的系统。
本申请提供一种用于分群体统计在线用户数的方法,包括:
接入服务器接收客户端的访问请求,并与所述客户端保持长连接状态;
接入服务器根据所述访问请求包含的信息确定所述客户端所属的用户群体,并对该用户群体的当前在线用户数目执行加一操作;
所述长连接关闭时,接入服务器对所述用户群体的当前在线用户数目执行减一操作。
可选的,在接收客户端的访问请求之前,执行下述操作:
设置用于描述用户群体的一个或者多个特征参数,并根据统计的需求定义所述特征参数的组合方式,以及每一种组合方式所包含的一种或多种特征参数值;用所述特征参数的不同组合方式以及不同的特征参数值描述不同的用户群体的特征,所描述的全部用户群体特征形成用户群体特征列表;
相应的,所述根据所述访问请求包含的信息确定所述客户端所属的用户群体是指,将所述访问请求中与特征参数相关的信息,与所述用户群体特征列表中的每一个用户群体的特征参数值进行匹配,所有特征参数值都匹配成功的用户群体即为所述客户端所属的用户群体。
可选的,所述用户群体的特征参数是指客户端版本参数。
可选的,所述用户群体的特征参数值包括以下两种形式:
以完整的字符串作为用户群体的特征参数值;或者,
以带有通配符的模糊字符串作为用户群体的特征参数值;
相应的,所述匹配操作包括:完备匹配和/或者模糊匹配,所述模糊匹配包括:前缀匹配和/或者后缀匹配。
可选的,在接收客户端的访问请求之前,执行下述操作:
对所述用户群体特征列表中的每个用户群体进行编号;
对用户群体特征列表按照不同的特征参数进行分组,得到一个或者多个特征参数分组;
相应的,所述将所述访问请求中与特征参数相关的信息,与所述用户群体特征列表中的每一个用户群体的特征参数值进行匹配,所有特征参数值都匹配成功的用户群体即为所述客户端所属的用户群体,包括:
针对每一个特征参数分组,将所述访问请求中与特征参数相关的信息分别与本分组中的字符串进行匹配,并记录匹配成功的字符串所属用户群体的编号,作为该分组的匹配成功编号;
提取每个特征参数分组的匹配成功编号中共有的编号,所述共有编号对应的用户群体即为所述客户端所属的用户群体。
可选的,在接收客户端的访问请求之前,执行下述操作:
在每一特征参数分组中,按照本分组特征参数值的字符串形式进一步划分为完备匹配子分组、前缀匹配子分组、和/或后缀匹配子分组,并将所述每个子分组包含的字符串按字典序排序;
相应的,所述将所述访问请求中与特征参数相关的信息分别与本分组中的字符串进行匹配是指,针对本分组中的每个子分组采用逐步调整可匹配字符串区间的上下界的方式进行匹配。
可选的,所述根据所述访问请求包含的信息确定所述客户端所属的用户群体,并对该用户群体的当前在线用户数目执行加一操作是指,
根据所述访问请求包含的信息,采用机器学习的方式归纳所述客户端所属用户群体的群体特征,并对所述用户群体的在线用户数目执行加一操作。
可选的,在接收客户端的访问请求之前,执行下述操作:
设置用于归纳用户群体特征的一个或者多个特征参数;
创建一个用于记录用户群体特征值以及对应的当前在线用户数目的哈希表;
相应的,所述根据所述访问请求包含的信息,采用机器学习的方式归纳所述客户端所属用户群体的群体特征,并对所述用户群体的在线用户数目执行加一操作,包括:
提取所述访问请求中包含的、与预先设置的特征参数对应的信息,作为所述客户端所属用户群体的特征参数值;
判断所述哈希表中是否存在所述特征参数值对应的表项;
若存在,则将对应表项记录的当前在线用户数目加一;
若不存在,则向所述哈希表中添加以所述特征参数值为键值的表项,并将该表项的当前在线用户数目设置为1。
可选的,所述方法包括:
接收查询某个具体的用户群体的当前在线用户数目的请求,所述请求中包含待查询用户群体的特征参数值;
在当前统计的用户群体信息中,查找特征参数值与所述查询请求包含的特征参数值一致的用户群体;
将找到的用户群体的当前在线用户数目返回给所述请求的发起方。
可选的,所述方法包括:
接收查询所有用户群体的当前在线用户数目的请求;
将当前统计的所有用户群体及其当前在线用户数目返回给所述请求的发起方。
可选的,所述方法包括:
接收查询与指定特征参数值满足模糊匹配要求的某一类用户群体的当前在线用户数目的请求,所述请求中包含所述指定的特征参数值;
在当前统计的用户群体信息中,查找特征参数值与所述指定特征参数值满足模糊匹配要求的用户群体;
将找到的用户群体及其当前在线用户数目返回给所述请求的发起方。
可选的,所述客户端的访问请求,是由前端调度服务器根据所述访问请求包含的信息确定所述客户端所属用户群体、并通过向所述客户端提供与该用户群体对应的接入服务器地址信息的方式引导到所述接入服务器的。
相应的,本申请还提供一种用于分群体统计在线用户数的装置,包括:
访问请求接收单元,用于接收客户端的访问请求,并与所述客户端保持长连接状态;
用户群体确定单元,用于根据所述访问请求包含的信息确定所述客户端所属的用户群体;
用户数目累加单元,用于对所述用于群体确定单元输出的用户群体的当前在线用户数目执行加一操作;
用户数目递减单元,用于在所述长连接关闭时,对所述用户群体确定单元输出的用户群体的当前在线用户数目执行减一操作。
可选的,所述装置还包括:
群体特征设置单元,用于在接收客户端的访问请求之前,设置用于描述用户群体的一个或者多个特征参数,并根据统计的需求定义所述特征参数的组合方式,以及每一种组合方式所包含的一种或多种特征参数值;用所述特征参数的不同组合方式以及不同的特征参数值描述不同的用户群体的特征,所描述的全部用户群体特征形成用户群体特征列表;
相应的,所述用户群体确定单元具体用于,将所述访问请求中与特征参数相关的信息,与所述用户群体特征列表中的每一个用户群体的特征参数值进行匹配,所有特征参数值都匹配成功的用户群体即为所述客户端所属的用户群体。
可选的,所述群体特征设置单元设置的用户群体的特征参数是指客户端版本参数。
可选的,所述群体特征设置单元定义的特征参数值包括以下两种形式:以完整的字符串作为用户群体的特征参数值;或者,以带有通配符的模糊字符串作为用户群体的特征参数值;
相应的,所述用户群体确定单元执行的匹配操作包括:完备匹配和/或者模糊匹配,所述模糊匹配包括:前缀匹配和/或者后缀匹配。
可选的,所述群体特征设置单元除了包含完成其主体功能的群体特征设置执行子单元之外,还包括:
用户群体编号子单元,用于对所述用户群体特征列表中的每个用户群体进行编号;
特征参数分组子单元,用于对用户群体特征列表按照不同的特征参数进行分组,得到一个或者多个特征参数分组;
相应的,所述用户群体确定单元包括:
分组匹配子单元:用于针对每一个特征参数分组,将所述访问请求中与特征参数相关的信息分别与本分组中的字符串进行匹配,并记录匹配成功的字符串所属用户群体的编号,作为该分组的匹配成功编号;
匹配结果提取子单元:用于提取每个特征参数分组的匹配成功编号中共有的编号,所述共有编号对应的用户群体即为所述客户端所属的用户群体。
可选的,所述群体特征设置单元还包括:
子分组划分与排序子单元,用于在每一特征参数分组中,按照本分组特征参数值的字符串形式进一步划分为完备匹配子分组、前缀匹配子分组、和/或后缀匹配子分组,并将所述每个子分组包含的字符串按字典序排序;
相应的,所述分组匹配子单元具体用于,针对每一个特征参数分组中的每个子分组,采用逐步调整可匹配字符串区间的上下界的方式进行匹配。
可选的,所述用户群体确定单元具体用于,根据所述访问请求包含的信息,采用机器学习的方式归纳所述客户端所属用户群体的群体特征。
可选的,所述装置还包括:
特征参数设置单元,用于在接收客户端的访问请求之前,设置用于归纳用户群体特征的一个或者多个特征参数;
哈希表创建单元,用于创建一个用于记录用户群体特征值以及对应的当前在线用户数目的哈希表;
相应的,所述用户群体确定单元具体用于,提取所述访问请求中包含的、与预先设置的特征参数对应的信息,作为所述客户端所属用户群体的特征参数值;
相应的,所述用户数目累加单元包括:
用户群体判断子单元,用于判断所述哈希表中是否存在所述特征参数值对应的表项;
用户数目累加执行子单元,用于当所述用户群体判断子单元的输出为“是”时,将与所述特征参数值对应的表项记录的当前在线用户数目加一;
用户群体创建子单元,用于当所述用户群体判断子单元的输出为“否”时,向所述哈希表中添加以所述特征参数值为键值的表项,并将该表项的当前在线用户数目设置为1。
可选的,所述装置还包括:
第一查询请求接收单元,用于接收查询某个具体的用户群体的当前在线用户数目的请求,所述请求中包含待查询用户群体的特征参数值;
第一查询请求处理单元,用于在当前统计的用户群体信息中,查找特征参数值与所述查询请求包含的特征参数值一致的用户群体;
第一查询结果返回单元,用于将找到的用户群体的当前在线用户数目返回给所述请求的发起方。
可选的,所述装置还包括:
第二查询请求接收单元,用于接收查询所有用户群体的当前在线用户数目的请求;
第二查询结果返回单元,用于将当前统计的所有用户群体及其当前在线用户数目返回给所述请求的发起方。
可选的,所述装置还包括:
第三查询请求接收单元,用于接收查询与指定特征参数值满足模糊匹配要求的某一类用户群体的当前在线用户数目的请求,所述请求中包含所述指定的特征参数值;
第三查询请求处理单元,用于在当前统计的用户群体信息中,查找特征参数值与所述指定特征参数值满足模糊匹配要求的用户群体;
第三查询结果返回单元,用于将找到的用户群体及其当前在线用户数目返回给所述请求的发起方。
可选的,所述访问请求接收单元接收的访问请求,是由前端调度服务器根据所述访问请求包含的信息确定所述客户端所属用户群体、并通过向所述客户端提供与该用户群体对应的接入服务器地址信息的方式引导到所述接入服务器的。
此外,本申请还提供一种用于分群体统计在线用户数的系统,包括:
根据上述任意一项所述的用于分群体统计在线用户数的装置、向所述用于分群体统计在线用户数的装置发送访问请求的客户端、以及为所述客户端提供访问服务的后端应用服务器。
可选的,所述系统还包括:
前端调度服务器,用于根据客户端访问请求包含的信息为所述客户端提供接入服务器的地址信息,从而将属于不同用户群体的客户端访问请求分流到不同的接入服务器。
可选的,所述系统还包括:
用户群体查询设备,用于向所述用于分群体统计在线用户数的装置,查询用户群体的当前在线用户数,并根据查询结果进行聚合、分析、和/或展示处理。
与现有技术相比,本申请具有以下优点:
本申请提供的用于分群体统计在线用户数的方法,通过与客户端保持长连接状态,并在接收客户端访问请求时,根据访问请求包含的信息确定客户端所属用户群体,并对该用户群体的当前在线用户数目执行加一操作,在所述长连接关闭时,对该用户群体的当前在线用户数目执行减一操作,从而实现了不需要引入状态服务器,直接由面向客户端的接入服务器完成所述各个用户群体的当前在线用户数目的统计;在降低硬件成本的同时,保证了统计的实时性和准确性,而且由于在接入服务器上维护了用户群体与当前在线用户数目的对应关系,因此对于外部的查询请求,仅需执行简单的聚合操作即可做出快速、实时响应。
附图说明
图1是本申请的一种用于分群体统计在线用户数的方法的实施例的流程图;
图2是本申请的一种用于分群体统计在线用户数的装置的实施例的示意图;
图3是本申请的一种用于分群体统计在线用户数的方法的另一种实施例的流程图;
图4是本申请的一种用于分群体统计在线用户数的装置的另一种实施例的示意图;
图5是本申请的一种用于分群体统计在线用户数的系统实施例的示意图;
图6是本申请的一种用于分群体统计在线用户数的系统的处理流程图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请中,分别提供了一种用于分群体统计在线用户数的方法和装置、以及一种用于分群体统计在线用户数的系统,在下面的实施例中逐一进行详细说明。
为了便于理解,先对长连接技术、以及本申请技术方案的应用场景作简要的介绍。本申请提供的技术方案,其核心在于,由直接面向客户端的接入服务器进行当前在线用户数目的统计,即:在与客户端建立长连接的时候,对所述客户端所属用户群体的当前在线用户数目执行加一操作,在所述长连接关闭时,对所述用户群体的当前在线用户数目执行减一操作,从而在不需引入状态服务器的情况下,实现了对多个用户群体的当前在线用户数目的实时、准确地统计。
本申请所述的长连接,是指客户端与接入服务器建立数据连接后,该数据连接会一直保持连接状态,当服务器一侧有新的数据时可以通过该连接直接向客户端下发数据,通常当客户端用户下线时才会关闭所述长连接。由此可见,长连接的建立和关闭过程,可以反映客户端用户的上线和下线状态的变化,本申请的技术方案则利用了长连接的这一特点进行当前在线用户数目的实时统计。
在实际应用中,由于消息推送系统通常需要频繁、实时地向客户端推送信息,而现有技术通常不允许服务器在需要向客户端下发数据时主动与客户端建立数据连接,因此现有的消息推送系统通常采用长连接方式实现,消息推送系统也是本申请技术方案的应用场景之一,即:在请求消息推送服务的客户端与提供消息推送服务的接入服务器之间保持长连接状态,并在所述长连接建立和关闭时,由接入服务器负责更新并维护客户端所属用户群体的当前在线用户数。
需要说明的是,本申请技术方案的应用场景并不仅仅局限于消息推送系统,只要是一个客户端用户与接入服务器之间仅建立一条长连接的应用场景,都可以使用本申请的技术方案实现分群体在线用户数的实时统计,因为在这样的应用场景下,接入服务器维护的长连接数目等同于当前在线用户数。下面对本申请的技术方案进行详细说明。
请参考图1,其为本申请的一种用于分群体统计在线用户数的方法实施例的流程图,在本实施例中,用户群体特征是预先设定的。所述方法包括如下步骤:
步骤101:设置用户群体特征,生成用户群体特征列表。
关于如何根据访问请求包含的信息确定客户端所属用户群体,本申请提供了两种方式,一种是在事先了解需要统计的用户群体特征的条件下,预先设定好用户群体特征,接收客户端的访问请求后用访问请求中包含的相应信息与已经设定好的每个用户群体特征进行匹配,根据匹配结果确定客户端所属用户群体;另一种是在不了解需要统计的用户群体特征的条件下,让接入服务器采用边学习边统计的方式,通过提取访问请求中包含的相应信息确定当前客户端所属的用户群体特征。
本实施例采用的是上述第一种方式,因此需要预先设置用户群体特征,生成用户群体特征列表。具体说是这样的,设置用于描述用户群体的一个或者多个特征参数,并根据统计的需求定义所述特征参数的组合方式,以及每一种组合方式所包含的一种或多种特征参数值;用所述特征参数的不同组合方式以及不同的特征参数值描述不同的用户群体的特征,所描述的全部用户群体特征形成用户群体特征列表。由此可见,本申请的技术方案对用户群体的描述是灵活多变的,可以方便地从多个维度划分用户群体。
此外,对用户群体的特征参数值的设置可以采用以下两种形式:完整的字符串;或者,带有通配符的模糊字符串。从而在后续确定用户群体的步骤中既可以采用完整匹配方式,也可以采用模糊匹配方式(包括前缀匹配和后缀匹配),便于将特征近似的多个用户群体归为一类并进行当前在线用户数的统计。
在本实施例的一个具体例子中,在接入服务器启动之前,在其配置文件中添加了需要统计的用户群体特征列表,在接入服务器启动后,加载所述配置文件中的用户群体特征列表为后续进行分群体统计当前在线用户数目做好准备。在所述具体例子中,用客户端版本参数A和参数B作为用于描述用户群体的特征参数,根据统计需求生成的用户群体特征列表总共包含5个用户群体特征,如下所示:
A=taobao,B=umeng;
A=tao*,B=umeng_1.0;
A=tmall,B=umeng*;
A=taob,B=*meng;
A=t*,B=um;
上述用户群体特征列表仅仅是示意性的,实际上根据参数A和参数B的上述取值,还可以根据统计的需求进行不同的组合,形成更多维度的用户群体特征,例如“A=taobao,B=um”或者“A=tmall,B=umeng_1.0”等。
一个特征参数及其各种取值对应一个维度,采用上述定义用户群体特征的方式,可以将各种单一维度按照统计的需求随意组合,构造出一个或者多个具有商业价值的群体特征,从而为商业决策提供支持。
在本实施例的上述具体例子中,采用客户端版本参数作为描述用户群体的参数,在其他实施方式中,可以为版本参数设置不同于上述例子的其他值,也可以不使用版本参数,而使用访问请求中包含的其他信息作为描述用户群体的参数。
为了在后续的步骤103中快速地根据访问请求确定客户端所属的用户群体,在接收客户端的访问请求之前,还需要对已经生成的用户群体特征列表进行必要的预处理,所述预处理过程包括:
1)对所述用户群体特征列表中的每个用户群体进行编号;
2)对用户群体特征列表按照不同的特征参数进行分组,得到一个或者多个特征参数分组;
3)在每一特征参数分组中,按照本分组特征参数值的字符串形式进一步划分为完备匹配子分组、前缀匹配子分组、和/或后缀匹配子分组,并将所述每个子分组包含的字符串按字典序排序。
仍以上述具体例子为例,首先将所述用户群体特征列表中的每个用户群体分别编号为0~4,然后划分特征参数分组和子分组、并对子分组包含的字符串按字典序排序后,得到如下所述的分组和子分组信息:
特征参数A分组:
特征参数B分组:
步骤102:接入服务器接收客户端的访问请求,并与所述客户端保持长连接状态;
客户端在访问服务器提供的服务之前,通常会先向接入服务器发送访问请求,所述访问请求中通常携带URL(统一资源定位符Uniform Resource Locator的缩写)信息,不仅包含对需要访问或者获取的资源的描述,同时还包含一些与客户端相关的信息,例如:客户端的版本信息等,在后续步骤103中就是根据访问请求中包含的信息确定所述客户端所属用户群体。
本申请所述的接收客户端的访问请求,通常也包含了与客户端建立数据连接的过程。在网络应用中,通常所说的接收访问请求反馈应答等操作都是在建立好的数据连接的基础上完成的。因此接入服务器在接收客户端的访问请求之前,通常已经通过协议层与客户端建立好了数据连接。在本实施例的一个具体例子中,接入服务器与客户端之间通过三次握手过程建立起了TCP连接,并基于该数据连接接收到了客户端的访问请求。
接入服务器接收到所述客户端的访问请求后,通过对访问请求中携带的URL等信息的分析,从中提取业务特征,如果该访问请求访问的是需要使用长连接的业务,例如:消息推送服务,那么接入服务器将与所述客户端保持长连接状态,也就是说在客户端用户不执行下线操作的正常情况下,接入服务器不主动发起关闭当前连接的操作,并继续执行本申请技术方案的后续步骤;如果该访问请求访问的不是需要使用长连接的业务,则不继续执行本申请技术方案的后续步骤,而是按照其业务类型进行相应的处理。
步骤103:将所述访问请求中与特征参数相关的信息,与所述用户群体特征列表中的每一个用户群体的特征参数值进行匹配,所有特征参数值都匹配成功的用户群体即为所述客户端所属的用户群体。
由于在步骤101中已经设定了用户群体特征列表,并且对用户群体特征列表进行了特征参数分组以及子分组的划分和排序,那么在本步骤可以通过快捷的匹配操作,确定客户端所属的用户群体。整个匹配过程包括步骤103-1和步骤103-2,下面进行详细说明。
步骤103-1:针对每一个特征参数分组,采用调整可匹配字符串区间上下界的匹配算法,将所述访问请求中与特征参数相关的信息与每个子分组中的字符串进行匹配,并记录匹配成功的字符串所属用户群体的编号,作为该分组的匹配成功编号。
下面以完备匹配为例,对调整可匹配字符串区间上下界的匹配算法进行说明。在完备匹配中,对于任意长度的待匹配串前缀(这里的待匹配串指的就是访问请求中与特征参数相关的信息),完备匹配子分组中的字符串列表内可以与之匹配的串总是在一个连续的区间内,而且这个区间随着待匹配串前缀的长度增加而减小。
例如,某特征参数分组的完备匹配子分组中包含的字符串如下表所示,访问请求中与该特征参数相关的信息是版本信息“taobao”,对于该待匹配字符串“taobao”来说,下表中灰色背景的部分就是在匹配过程中得到的连续的可匹配区间。待匹配串的长度每增加一个字符,就将可匹配区间的上下界一步步调整到合适的位置,当整个待匹配串扫描完毕,自然就获得了相应的匹配结果。
具体过程是这样的,首先将待匹配串的第一个字符与列表中的第一个和最后一个字符串的首字符进行匹配,都匹配成功,因此可匹配区间的上界指向第一个字符串的首字符t,下界指向第六个字符串的首字符t;然后待匹配串的长度加1,将待匹配串的第二个字符与列表中的第一个和第六个字符串的第二个字符进行匹配,第一个字符串匹配成功,第六个字符串匹配失败,因此可匹配区间的上界指向第一个字符串的第二个字符a,而下界则调整指向了第五个字符串的第二个字符a......采用上述方法遍历完整个待匹配字符串,可匹配区间的上下界就会逐步调整靠近,最终上下界同时指向了同一个匹配成功的字符时,例如都指向了第五个字符串的第六个字符o,说明在本子分组中找到了匹配成功的字符串“taobao”,记录该字符串所属用户群体的编号,从而得到了所在参数分组的一个匹配成功编号。
t | a | ||||
t | a | b | a | o | |
t | a | o | b | d | |
t | a | o | b | a | e |
t | a | o | b | a | o |
t | m | a | l | l |
上面以完备匹配为例,说明了该算法的基本原理,对于前缀匹配和后缀匹配来说,与完备匹配的匹配过程是类似的,不同之处在于,对于前缀匹配,如果匹配过程中上界或者下界所指向的字符为通配符时,说明该通配符所属字符串匹配成功,需要将该字符串所属用户群体的编号记录下来;对于后缀匹配,则需要在匹配之前将后缀匹配子分组中的字符串以及待匹配字符串都执行一次反转操作,即:转换为前缀匹配,然后按照与前缀匹配相同的方法进行匹配即可。在具体的实施过程中,可以采用字符串列表数据结构存储各个子分组中的字符串,采用指针作为调整可匹配区间的上下界变量。
如果访问请求中与特征参数相关的信息字符串的长度为L(即:待匹配串的长度为L),用于描述用户群体的特征参数的数目为K个,每个特征参数的特征参数值为V个,那么采用上述在扫描待匹配串的过程中维护可匹配区间的上下界的算法,对于一个特征参数分组来说,扫描待匹配串的时间复杂度是O(L),调整上下界的时间复杂度是O(V),本分组的匹配时间复杂度为O(L+V);对于所有特征参数分组来说,整个匹配过程的复杂度为O(K*(L+V)),也就是说可以在上述时间复杂度内完成一个访问请求与所有用户群体特征参数值的匹配。
在实际应用的场景中,由于接入服务器通常至少需要解析并处理访问请求中的整个URL信息,而用于描述用户群体的特征参数个数K相对较小,待匹配字符串的长度L又受到URL总长度限制,即满足:K*L<=URL总长,因此当K*V和K*L数量级相仿时,采用上述匹配算法增加的时间开销是完全可以接受的,也就是说上述字符串匹配算法轻巧快速、具有较高的执行效率,不会因为确定用户群体的匹配过程给接入服务器带来额外的压力,能够有效保证接入服务器处理访问请求的实时性。
在某些应用场景下,如果预先定义的特征参数值的总数相对较大,例如上万甚至更大时,也可以采用基于字典树(在树的节点上维护前缀可匹配的集合)的匹配算法,同样也可以获得较好的执行效率。
步骤103-2:提取每个特征参数分组的匹配成功编号中共有的编号,所述共有编号对应的用户群体即为所述客户端所属的用户群体。
执行到本步骤,已经完成了访问请求中与特征参数相关信息与各个特征参数分组中的特征参数值的匹配过程,在本步骤中,从每个特征参数分组的匹配成功编号中提取共有的编号,该共有编号对应的用户群体即为所述客户端所属得用户群体。下面以步骤101中的具体例子为例进行详细说明。
在所述具体例子中,每个用户群体特征都是用版本参数A和版本参数B进行描述的,并且已经定义了包含5个用户群体特征的用户群体特征列表,每个用户群体特征依次编号为0~4,从所述访问请求中提取与特征参数A对应的信息为:taobao,与特征参数B对应的信息为umeng。在步骤103-1中,用taobao与特征参数A分组中的各个子分组进行匹配,得到的匹配成功编号为0、1、4,用umeng与特征参数B分组中的各个子分组进行匹配,得到的匹配成功编号为0、2、3,那么在本步骤中提取出上述两组编号中的共有编号0,那么0号对应的用户群体(A=taobao,B=umeng)就是所述客户端所属的用户群体。
需要说明的是,在步骤103-1中给出的是本申请技术方案提供的一种优选的字符串匹配算法,通过在扫描待匹配串的过程中维护可匹配区间的上下界,能够快速地找到与访问请求中的信息相匹配的特征参数值。在具体的实施过程中,可以根据用户访问量的大小、用户群体特征参数的个数以及特征参数值的多少选择其它匹配算法,在时间和空间性能满足要求的情况下,同样可以实现本申请的技术方案。
例如,可以按照传统的字符串匹配算法,将访问请求中与特征参数相关的信息逐一与特征参数分组中的每个字符串进行匹配(如果特征参数值是完整定义的字符串则执行完备匹配操作,如果特征参数值是包含通配符的模糊字符串则执行模糊匹配操作),并记录匹配成功的字符串所属用户群体的编号,然后再提取每个特征参数分组的匹配成功编号中共有的编号。如果采用这种实施方式,在步骤101的预处理中,就不需要对每个子分组中的字符串按照字典序进行排序处理。
再例如,可以直接用访问请求中与特征参数相关的信息与用户群体特征列表中的每个用户群体的所有特征参数值依次匹配,所有特征参数值都匹配成功的用户群体即为所述客户端所属的用户群体。仍以步骤101的具体例子为例,访问请求中携带的特征参数信息为taobao、umeng,将这两项信息先与预先设定的五个用户群体特征中的第一个用户群体的两个特征参数值依次匹配,然后再将这两项信息与第二个用户群体的两个特征参数值依次匹配......整个匹配过程执行完毕,只有第一个用户群体的两个特征参数值与上述两项信息都匹配成功,因此可以确定发起所述访问请求的客户端仅属于第一个用户群体。如果采用这种实施方式,那么在步骤101中就不用执行划分分组、子分组的预处理操作,在本步骤中也不必先按照每个分组进行匹配、然后再提取共有编号,而是直接按照上述方式匹配即可。
在上述具体例子中,所述客户端仅仅属于一个用户群,在其他实施方式中,如果在整个匹配过程中,所述访问请求中与特征参数相关的信息,与多个用户群体的特征参数值都能够匹配成功,那么所述客户端就同时属于上述匹配成功的多个用户群体。
步骤104:对所述用户群体的当前在线用户数目执行加一操作。
通过步骤103的匹配操作,已经确定了客户端所属的用户群体,在本步骤中,仅需要为所述用户群体的当前在线用户数目执行加一操作即可,如果已经确定的用户群体为多个,则需要为每个用户群体的当前在线用户数目执行加一操作。
在具体的实施过程中,可以在步骤101生成用户群体特征列表的时候,为每个用户群体再添加一个用于记录当前在线用户数的表项,从而得到一张用户群体与当前在线用户数的关联表;也可以为用户群体特征列表中的每个用户群体从0开始编号,并创建一个数组,在以用户群体编号作为下标的数组元素中记录对应用户群体的当前在线用户数目,从而将每个用户群体与该用户群体的当前在线用户数目对应起来。那么在本步骤中对所述用户群体对应的、用于记录当前在线用户数的表项或者是数组元素中的值执行加一操作即可。
步骤105:所述长连接关闭时,接入服务器对所述用户群体的当前在线用户数目执行减一操作。
长连接一经建立,接入服务器就会与客户端就会保持长连状态,接入服务器会向处理所述访问请求的应用服务器转发所述访问请求,并将所述应用服务器针对所述访问请求返回的应答数据(例如:推送的信息)通过长连接发送给所述客户端。
通常情况下,当客户端用户下线时(例如,用户执行“退出登录”操作)才会触发长连接的关闭操作,通过客户端与服务器之间在协议层的交互完成长连接的关闭操作;在一些特殊情况下,关闭长连接的动作也可能由接入服务器发起,例如:接入服务器需要执行升级操作或者因为故障等原因需要重启;此外由于网络环境不稳定导致数据连接断开,也会导致长连接的关闭。不管是上述哪种情况,接入服务器都会获知长连接关闭这一情况,并对所述用户群体的当前在线用户数目执行减一操作。
在具体的实施过程中,在确定所述客户端所属用户群体后,通常将承载当前访问请求的长连接信息与客户端所属用户群体信息建立起对应关系,这样在本步骤中就可以根据关闭的长连接信息找到与其对应的用户群体,并对所述用户群体的当前在线用户数目执行减一操作。
通过执行上面的步骤101-105,接入服务器在接入大量用户的长连接请求的同时,实时统计出了不同用户群体的当前在线用户数目,从而可以为需要获取相关信息的系统或者应用程序提供所需的数据,为商业决策提供数据支持。具体说,本申请的技术方案支持对单个用户群体、部分用户群体和所有用户群体的当前在线用户数的实时查询,整个处理过程通常包含接收查询请求、根据查询请求进行查找操作、返回满足要求的用户群体及其当前在线用户数目这样几个步骤。
例如,接收需要查找单个用户群体的当前在线用户数的查询请求,则用查询请求给出的特征参数值在当前统计的用户群体信息(例如,步骤104中的用户群体与当前在线用户数的关联表)中查找特征参数值与所述查询请求包含的特征参数值一致的用户群体,并读取与该用户群体对应的当前在线用户数目,返回给所述请求的发起方;如果接收需要查找所有用户群体的当前在线用户数的查询请求,则遍历当前统计的用户群体信息,将所有用户群体及其当前在线用户数目以<用户群体特征参数值,在线用户数>二元组的格式返回;如果接收需要查找所有特征参数值近似的用户群体的在线用户数的查询请求,则遍历当前统计的用户群体信息,将查询请求中包含的特征参数值与每个用户群体的特征参数值做字符串的模糊匹配,最后将匹配成功的用户群体及其当前在线用户数目以<用户群体特征参数值,在线用户数>二元组的格式返回。
需要说明的是,本申请的技术方案还可以与前端调度相结合。客户端可以先向前端调度服务器请求获取接入服务器地址,这时前端调度服务器会根据客户端请求中包含的信息对客户端进行分组,将符合某一类用户群体特征的客户端的访问请求引导到同一个接入服务器,将属于不同用户群体的客户端访问请求引导到不同的接入服务器,即:先由前端调度服务器对客户端所属用户群体进行一次粗分,并引导到相应的接入服务器,再由接入服务器对客户端所属用户群体作进一步的细化,这样可以简化每台接入服务器的统计规则并提高统计效率,达到先粗分后细分的统计目的。
通过上面的描述可以看出,采用本申请提供的用于分群体统计在线用户数的方法,在用户群体特征已知的情况下,通过将访问请求中的相应信息与用户群体的特征参数值进行匹配来确定所述客户端所属的用户群体,并对所述用户群体的当前在线用户数目执行加一操作,在所述长连接关闭时,对所述用户群体的当前在线用户数目执行减一操作,从而实现了不需要引入状态服务器,直接由面向客户端的接入服务器完成所述各个用户群体的当前在线用户数目的统计;在降低硬件成本的同时,保证了统计的实时性和准确性,而且由于在接入服务器上维护了用户群体与当前在线用户数目的对应关系,因此对于外部的查询请求,仅需执行简单的匹配操作即可做出快速、实时响应。
此外,采用本申请提供的方法,通过设置用于描述用户群体的一个或者多个特征参数,并用所述特征参数的不同组合方式以及不同的特征参数值描述不同的用户群体的特征,从而支持对单一维度用户群体特征的随意组合,构造出多维度的、具有商业价值的用户群体特征,为商业决策提供有力的数据支持。而且,在设置用户群体特征参数值时,既可以采用完整的字符串形式,也可以采用带有通配符的模糊字符串形式,从而可以方便地将属性近似的多个用户群体归为一类并进行该类用户群体的当前在线用户数的实时统计。
在上述的实施例中,提供了一种用于分群体统计在线用户数的方法,与之相对应的,本申请还提供一种用于分群体统计在线用户数的装置。请参看图2,其为本申请的一种用于分群体统计在线用户数的装置的实施例示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
本实施例的一种用于分群体统计在线用户数的装置,包括:群体特征设置单元201,用于在接收客户端的访问请求之前,设置用于描述用户群体的一个或者多个特征参数,并根据统计的需求定义所述特征参数的组合方式,以及每一种组合方式所包含的一种或多种特征参数值;用所述特征参数的不同组合方式以及不同的特征参数值描述不同的用户群体的特征,所描述的全部用户群体特征形成用户群体特征列表;访问请求接收单元202,用于接收客户端的访问请求,并与所述客户端保持长连接状态;用户群体确定单元203,用于将所述访问请求中与特征参数相关的信息,与所述用户群体特征列表中的每一个用户群体的特征参数值进行匹配,所有特征参数值都匹配成功的用户群体即为所述客户端所属的用户群体;用户数目累加单元204,用于对所述用于群体确定单元输出的用户群体的当前在线用户数目执行加一操作;用户数目递减单元205,用于在所述长连接关闭时,对所述用户群体确定单元输出的用户群体的当前在线用户数目执行减一操作。
所述群体特征设置单元201设置的用户群体的特征参数是指客户端版本参数。
所述群体特征设置单元201定义的特征参数值包括以下两种形式:以完整的字符串作为用户群体的特征参数值;或者,以带有通配符的模糊字符串作为用户群体的特征参数值。
相应的,所述用户群体确定单元203执行的匹配操作包括:完备匹配和/或者模糊匹配,所述模糊匹配包括:前缀匹配和/或者后缀匹配。
所述群体特征设置单元201包括:群体特征设置执行子单元,用于完成本单元的主体设置功能;所述用户群体编号子单元,用于对所述用户群体特征列表中的每个用户群体进行编号;所述特征参数分组子单元,用于对用户群体特征列表按照不同的特征参数进行分组,得到一个或者多个特征参数分组;子分组划分与排序子单元,用于在每一特征参数分组中,按照本分组特征参数值的字符串形式进一步划分为完备匹配子分组、前缀匹配子分组、和/或后缀匹配子分组,并将所述每个子分组包含的字符串按字典序排序。
所述用户群体确定单元203包括:
分组匹配子单元:用于针对每一个特征参数分组,采用调整可匹配字符串区间上下界的匹配算法,将所述访问请求中与特征参数相关的信息与每个子分组中的字符串进行匹配,并记录匹配成功的字符串所属用户群体的编号,作为该分组的匹配成功编号;
匹配结果提取子单元:用于提取每个特征参数分组的匹配成功编号中共有的编号,所述共有编号对应的用户群体即为所述客户端所属的用户群体。
可选的,所述装置还包括:
第一查询请求接收单元,用于接收查询某个具体的用户群体的当前在线用户数目的请求,所述请求中包含待查询用户群体的特征参数值;
第一查询请求处理单元,用于在当前统计的用户群体信息中,查找特征参数值与所述查询请求包含的特征参数值一致的用户群体;
第一查询结果返回单元,用于将找到的用户群体的当前在线用户数目返回给所述请求的发起方。
可选的,所述装置还包括:
第二查询请求接收单元,用于接收查询所有用户群体的当前在线用户数目的请求;
第二查询结果返回单元,用于将当前统计的所有用户群体及其当前在线用户数目返回给所述请求的发起方。
可选的,所述装置还包括:
第三查询请求接收单元,用于接收查询与指定特征参数值满足模糊匹配要求的某一类用户群体的当前在线用户数目的请求,所述请求中包含所述指定的特征参数值;
第三查询请求处理单元,用于在当前统计的用户群体信息中,查找特征参数值与所述指定特征参数值满足模糊匹配要求的用户群体;
第三查询结果返回单元,用于将找到的用户群体及其当前在线用户数目返回给所述请求的发起方。
与上述的一种用于分群体统计在线用户数的方法实施例相对应的,本申请还提供了所述方法的另一种实施例。请参考图3,其为本申请提供的一种用于分群体统计在线用户数的方法的另一种实施例的流程图,在本实施例中,用户群体特征并不是预先设定的,而是通过机器学习的方式不断归纳出用户群体特征再进行统计。本实施例与第一实施例步骤相同的部分不再赘述,下面重点描述不同之处。
本申请提供的一种用于分群体统计在线用户数的方法包括:
步骤301:设置用于归纳用户群体特征的特征参数。
在用户群体特征事先无法确定的应用场景下,可以采用机器学习的方法归纳用户群体特征,因此在接收来自客户端的访问请求之前,只需要设置好需要统计的特征参数即可。例如:设置需要统计的特征参数为客户端访问请求中包含的版本参数A,也就是说接入服务器根据客户端访问请求中包含的版本参数A的不同取值确定不同的用户群体。
步骤302:创建一个用于记录用户群体特征值以及对应的当前在线用户数目的哈希表。
哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。它通过散列函数f(key)把任意长度的关键码值变换成散列值,并映射到表中一个位置来访问记录,以加快定位和查找的速度。由于散列函数是一种压缩映射,散列值的空间通常远小于输入关键码值的空间,因此不同的输入可能会散列成相同的输出,即:对不同的关键字可能得到同一散列地址,即key1≠key2,而f(key1)=f(key2),这种现象称冲突。为了解决冲突,通常在哈希表的每个入口处挂一个链表,通过链表将所有发生冲突的关键码值逐一链接起来。
为了能够快速地定位特征参数值,本申请的技术方案在初始阶段创建一个哈希表,用于存放用户群体特征值以及对应的当前在线用户数目。在本实施例的一个具体例子中,采用指针数组来实现哈希表,并采用常用的除留余数法作为散列函数,即选取f(key)=key mod M作为散列函数,M为数组的大小,通过将散列函数f(key)得到的值作为数组下标,快速映射到数组中一个具体位置,从而实现快速定位和查找功能。为了解决可能存在的冲突,采用了链表的数据结构,在每个数组元素中存放一个链表头指针,用于将所有散列值对应当前数组位置的表项逐一链接起来,初始化时链表头指针为空。
步骤303:接入服务器接收客户端的访问请求,并与所述客户端保持长连接状态。
步骤304:提取所述访问请求中包含的、与预先设置的特征参数对应的信息,作为所述客户端所属用户群体的特征参数值。
从所述访问请求中,将与预先设置的特征参数对应的信息提取出来,即得到了所述客户端所属用户群体的特征参数值。对于机器学习过程来说,从访问请求中提取了特征参数值也就确定了该客户端所属的用户群体。在本实施例的一个具体例子中,预先设置的特征参数是版本参数,从客户端访问请求中提取出对应的版本参数信息为:taobao。
步骤305:判断所述哈希表中是否存在所述特征参数值对应的表项;若存在,执行步骤306,否则执行步骤307。
使用步骤304中提取的版本参数信息作为键值,采用散列函数f(key)=key mod M计算出对应的散列值,即得到该键值在散列表中的对应位置,可以直接访问对应的数组元素,如果该数组元素中存放的链表头指针为空,说明当前哈希表中不存在所述特征参数值“taobao”对应的表项,则转到步骤307执行;如果该数组元素中存放的链表头指针不为空,说明已经有与所述特征参数值“taobao”的散列值相同的表项存在,但由于可能有冲突发生,已经存储的表项其特征参数值不一定为“taobao”,因此还需要依次访问在该链表头指针上链接的每个表项中存储的特征参数值,如果存在特征参数值为“taobao”的表项,则转到步骤306执行,否则转到步骤307执行。
步骤306:将对应表项记录的在线用户数目执行加一操作;
执行到本步骤,说明在当前的哈希表中已经存储了发起所述访问请求的客户端所属用户群体的特征参数值和当前在线用户数,因此本步骤中,只需要将步骤306中找到的表项中的在线用户数目执行加一操作,表明该客户端所属用户群体的当前在线用户数目又增加了一个。
步骤307:向所述哈希表中添加以所述特征参数值为键值的表项,并将该表项的当前在线用户数目设置为1。
执行到本步骤,说明在当前哈希表中尚未存储所述客户端所属用户群体的相关信息,包括:特征参数值和当前在线用户数。因此,在本步骤中需要向哈希表中添加以所述特征参数值为键值的表项,并将该表项的在线用户数目设置为1。
在具体的实施过程中,需要先生成一个新的表项,向该表项中写入所述特征参数值,并将在线用户数目设置为1,然后将新表项添加到当前哈希表中的适当位置处,具体说有两种情况,如果在步骤305中通过散列函数得到的散列值对应的数组元素的链表头指针为空,则需要将新的表项作为第一个表项链接在散列值对应的数组元素中,即:将该数组元素的链表头指针指向所述新的表项;如果在步骤305中通过散列函数得到的散列值对应的数组元素的链表头指针不为空,则将所述新的表项添加到链表头指针所挂接的链表的尾部。
在具体的实施过程中,通常还需要在执行步骤306或步骤307的过程中,维护当前长连接与哈希表中的表项的对应关系,或者向长连接的相关信息中写入所述特征参数值,这样当长连接关闭时,可以快速定位对应的表项,并对其中存储的当前在线用户数目进行相应的更新即可。
步骤308:所述长连接关闭时,接入服务器对所述用户群体的当前在线用户数目执行减一操作。
长连接关闭时,可以根据长连接与哈希表项的对应关系、或者是长连接信息中记录的特征参数值,快速定位到对应的哈希表项,并对表项中记录的当前在线用户数目执行减一操作。
在具体实施过程中,在对某个哈希表项的当前在线用户数目执行减一操作后,可以进一步判断所述当前在线用户数目是否为零,如果为零,可以释放该表项占用的内存资源,从而减少哈希表所占内存空间的大小。
通过执行上面的步骤301-308,接入服务器在接入大量用户的长连接请求的同时,实时统计出了不同用户群体的当前在线用户数目,从而可以为需要获取相关信息的系统或者应用程序提供所需的数据,为商业决策提供数据支持。具体说,本申请的技术方案支持对单个群体、部分群体和所有群体的当前在线用户数的实时查询,通常包含接收查询请求、根据查询请求进行查找操作、返回满足要求的用户群体及其当前在线用户数目这样几个步骤。具体的查询或者遍历操作是在哈希表上执行的,其他处理过程与实施例一基本相同,此处不再赘述。
上面描述了通过机器学习的方式不断归纳出用户群体特征再进行统计的具体过程。在实际应用中,由于哈希表通常需要占用内存资源,为了保证系统运行的稳定性,以及为保证统计的效率,哈希表的总大小通常会受到限制。具体说,可以记录向哈希表中添加表项的具体数目,并且为在哈希表中存储的表项数目设置一个上限值(通常也称为哈希表大小的上限值)。当哈希表中存储的表项数目到达或者超过所述上限值时,如果新的访问请求到来并且需要新建哈希表项,则拒绝将该请求纳入统计之列,并可以通过打印错误日志等方式报警。
之所以会出现哈希表中存储的表项数目到达或者超过预先设定的上限值的情况,主要有以下两种原因:1)由于接入的用户请求的特征参数值在不断变化,而过时的、已经无效的特征值并没有从哈希表中移除,这种问题可以通过重启服务器进程并清空哈希表来解决,服务器在不断接入新的请求后会重构哈希表;2)预先设置的哈希表大小的上限值小于当前访问请求的特征参数值的总个数,该问题可以通过调整哈希表大小的上限值来解决,如果哈希表大小的上限值已经设置的足够大,依然无法解决问题,则可以借助前端调度将客户端的访问请求分离到不同的接入服务器中,从而减轻当前接入服务器的压力(关于与前端调度器的配合,可以参见实施例一中的相关部分)。
通过上面的描述可以看出,采用本申请提供的用于分群体统计在线用户数的方法,在用户群体特征未知的情况下,通过机器学习的方法确定客户端所属的用户群体,并对该用户群体的当前在线用户数目执行加一操作,在所述长连接关闭时,对所述用户群体的当前在线用户数目执行减一操作,从而实现了不需要引入状态服务器,直接由面向客户端的接入服务器完成所述各个用户群体的当前在线用户数目的统计;在降低硬件成本的同时,保证了统计的实时性和准确性,而且由于在接入服务器上维护了用户群体与当前在线用户数目的对应关系,因此对于外部的查询请求,仅需执行简单的匹配操作即可做出快速、实时响应。
需要说明的是,上面提供的用于分群体统计在线用户数的方法的两个实施例(实施例一和实施例三),是本申请技术方案的两种优选实施方式,为了便于确定用户群体,实施例一执行了预先设置用户群体特征,生成用户群体特征列表的步骤,实施例二则执行设置用于归纳用户群体特征的特征参数的步骤。从实现本申请的技术方案的角度出发,上述步骤都不是必需的。例如在某些应用场景中,在客户端访问请求中携带了用户群体信息,例如用户群体ID,直接根据该值就可以确定客户端所属的用户群体,那么就不需要执行上述的预先设置特征参数和/或特征参数值的步骤。
同样,为了快速定位和查找,实施例二执行了创建哈希表的步骤,在其他实施方式中可以不执行此步骤,而是直接使用普通的表格或者数据文件存储用户群体特征参数值和当前在线用户数目。
此外,正如上面所述,确定客户端所属用户群体的方式也是多种多样的,在其他实施方式中,可以不采用实施例一提供的匹配方式,也可以不采用实施例二提供的机器学习方法,例如,可以根据访问请求中携带的客户端IP地址所属区间,确定客户端所属用户群体等。因此,只要能够根据访问请求包含的信息确定客户端所属用户群体,并根据长连接的建立和关闭,对用户群体的当前在线用户数目进行更新,就都可以实现本申请的技术方案。
与上述一种用于分群体统计在线用户数的方法的另一种实施例相对应,本申请还提供一种用于分群体统计在线用户数的装置。请参看图4,其为本申请的一种用于分群体统计在线用户数的装置的另一种实施例示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
本实施例的一种用于分群体统计在线用户数的装置,包括:特征参数设置单元401,用于在接收客户端的访问请求之前,设置用于归纳用户群体特征的一个或者多个特征参数;哈希表创建单元402,用于创建一个用于记录用户群体特征值以及对应的当前在线用户数目的哈希表;访问请求接收单元403,用于接收客户端的访问请求,并与所述客户端保持长连接状态;用户群体确定单元404,用于提取所述访问请求中包含的、与预先设置的特征参数对应的信息,作为所述客户端所属用户群体的特征参数值;用户数目累加单元405,用于对所述用于群体确定单元输出的用户群体的当前在线用户数目执行加一操作;用户数目递减单元406,用于在所述长连接关闭时,对所述用户群体确定单元输出的用户群体的当前在线用户数目执行减一操作。
相应的,所述用户数目累加单元405包括:
用户群体判断子单元405-1,用于判断所述哈希表中是否存在所述特征参数值对应的表项;
用户数目累加执行子单元405-2,用于当所述用户群体判断子单元的输出为“是”时,将与所述特征参数值对应的表项记录的当前在线用户数目加一;
用户群体创建子单元405-3,用于当所述用户群体判断子单元的输出为“否”时,向所述哈希表中添加以所述特征参数值为键值的表项,并将该表项的当前在线用户数目设置为1。
可选的,所述装置还包括:
第一查询请求接收单元,用于接收查询某个具体的用户群体的当前在线用户数目的请求,所述请求中包含待查询用户群体的特征参数值;
第一查询请求处理单元,用于在当前统计的用户群体信息中,查找特征参数值与所述查询请求包含的特征参数值一致的用户群体;
第一查询结果返回单元,用于将找到的用户群体的当前在线用户数目返回给所述请求的发起方。
可选的,所述装置还包括:
第二查询请求接收单元,用于接收查询所有用户群体的当前在线用户数目的请求;
第二查询结果返回单元,用于将当前统计的所有用户群体及其当前在线用户数目返回给所述请求的发起方。
可选的,所述装置还包括:
第三查询请求接收单元,用于接收查询与指定特征参数值满足模糊匹配要求的某一类用户群体的当前在线用户数目的请求,所述请求中包含所述指定的特征参数值;
第三查询请求处理单元,用于在当前统计的用户群体信息中,查找特征参数值与所述指定特征参数值满足模糊匹配要求的用户群体;
第三查询结果返回单元,用于将找到的用户群体及其当前在线用户数目返回给所述请求的发起方。
本申请实施例还提供了一种用于分群体统计在线用户数的系统。所述系统包括用于分群体统计在线用户数的装置、向所述用于分群体统计在线用户数的装置发送访问请求的客户端、以及为所述客户端提供访问服务的后端应用服务器。所述用于分群体统计在线用户数的装置通常部署在接入服务器上,向所述用于分群体统计在线用户数的装置发送访问请求的客户端通常部署于移动通讯设备、个人电脑、PAD、iPad等多种终端设备。
可选的,所述系统还可以进一步包括前端调度服务器,用于根据客户端访问请求包含的信息为所述客户端提供接入服务器的地址信息,从而将属于不同用户群体的客户端访问请求分流到不同的接入服务器。
可选的,所述系统还可以进一步包括用户群体查询设备,用于向所述用于分群体统计在线用户数的装置,查询用户群体的当前在线用户数,并根据查询结果进行聚合、分析、和/或展示处理。
请参看图5,其为本申请的一种用于分群体统计在线用户数的系统实施例的示意图,在该实施例示意图中,包含两个部署在智能手机上的客户端设备,一台用于分群体统计在线用户数的接入服务器,两台后端应用服务器,一台前端调度服务器以及一台用户群体查询设备。该图仅仅是示意性的,在实际应用中,该系统中的各种设备和服务器的数目都可以根据实际需求进行调整,并且前端调度服务器和用户群体查询设备也是可选的,可以根据系统的实际需求进行配置。
请参看图6,其为本申请的一种用于分群体统计在线用户数的系统的处理流程图,下面结合该图以一条长连接的建立和关闭过程为例,对本系统内部的交互处理流程作进一步的说明。
客户端首先向前端调度服务器请求接入服务器地址信息,前端调度服务器根据客户端访问请求中的信息将所述客户端归入特定的用户群体,并将负责处理该用户群体访问请求的接入服务器地址信息返回给所述客户端;客户端随后与前端调度服务器指定的接入服务器建立数据连接并发起访问请求,接入服务器接收访问请求后,与所述客户端保持长连接状态,并根据访问请求中包含的信息确定所述客户端所属的用户群体,对该用户群体的当前在线用户数执行加一操作;接入服务器与后端应用服务器交互,转发所述客户端的访问请求,并将后端服务器需要发送给所述客户端的数据,通过长连接直接转发给所述客户端;当长连接关闭时,接入服务器对所述客户端所属用户群体的当前在线用户数执行减一操作。
需要说明的是,该图仅仅是本系统整体处理流程的示意图。其中,前端调度服务器根据客户端请求包含的信息确定客户端所属用户群体,并向客户端返回与该用户群体对应的接入服务器地址,是为了将从属于不同用户群体的客户端访问请求分流到不同的接入服务器,即:先进行一次粗分,然后再由接入服务器对该用户群体进一步细化并统计,从而可以简化每台接入服务器的统计规则、提高统计效率。
在具体的实施中,客户端可以仅向调度服务器申请一次接入服务器地址,并在本地缓存,以后直接使用本地缓存的接入服务器地址,仅在缓存失效后再向调度服务器请求。而且对于客户端数量比较有限的系统来说,一台接入服务器就可以处理全部的客户端访问请求,这种情况下也不需要配置前端调度服务器进行访问请求的分流,因此,客户端与前端调度服务器之间的交互过程并不是必需的,是否执行该处理过程并不影响本申请技术方案的核心。
此外,用户群体查询设备也可以与接入服务器进行交互,向接入服务器发送查询单个、多个或者部分用户群体的当前在线用户数目的请求,接入服务器返回该请求所需的用户群体的当前在线用户数。该交互过程对于本申请技术方案来说也不是必需的,没有在图6中示出。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
Claims (27)
1.一种用于分群体统计在线用户数的方法,其特征在于,包括:
接入服务器接收客户端的访问请求,并与所述客户端保持长连接状态;
接入服务器根据所述访问请求包含的信息确定所述客户端所属的用户群体,并对该用户群体的当前在线用户数目执行加一操作;
所述长连接关闭时,接入服务器对所述用户群体的当前在线用户数目执行减一操作;
其中,所述访问请求中至少包含客户端的版本信息;所述根据所述访问请求包含的信息确定所述客户端所属的用户群体是指,将所述访问请求中与特征参数相关的信息,与用户群体特征列表中的用户群体的特征参数值进行匹配,匹配成功的用户群体即为所述客户端所属的用户群体。
2.根据权利要求1所述的用于分群体统计在线用户数的方法,其特征在于,在接收客户端的访问请求之前,执行下述操作:
设置用于描述用户群体的一个或者多个所述特征参数,并根据统计的需求定义所述特征参数的组合方式,以及每一种组合方式所包含的一种或多种所述特征参数值;用所述特征参数的不同组合方式以及不同的特征参数值描述不同的用户群体的特征,所描述的全部用户群体特征形成所述用户群体特征列表。
3.根据权利要求2所述的用于分群体统计在线用户数的方法,其特征在于,所述用户群体的特征参数是指客户端版本参数。
4.根据权利要求2所述的用于分群体统计在线用户数的方法,其特征在于,所述用户群体的特征参数值包括以下两种形式:
以完整的字符串作为用户群体的特征参数值;或者,
以带有通配符的模糊字符串作为用户群体的特征参数值;
相应的,所述匹配操作包括:完备匹配和/或者模糊匹配,所述模糊匹配包括:前缀匹配和/或者后缀匹配。
5.根据权利要求4所述的用于分群体统计在线用户数的方法,其特征在于,在接收客户端的访问请求之前,执行下述操作:
对所述用户群体特征列表中的每个用户群体进行编号;
对用户群体特征列表按照不同的特征参数进行分组,得到一个或者多个特征参数分组;
相应的,所述将所述访问请求中与特征参数相关的信息,与所述用户群体特征列表中的每一个用户群体的特征参数值进行匹配,所有特征参数值都匹配成功的用户群体即为所述客户端所属的用户群体,包括:
针对每一个特征参数分组,将所述访问请求中与特征参数相关的信息分别与本分组中的字符串进行匹配,并记录匹配成功的字符串所属用户群体的编号,作为该分组的匹配成功编号;
提取每个特征参数分组的匹配成功编号中共有的编号,所述共有编号对应的用户群体即为所述客户端所属的用户群体。
6.根据权利要求5所述的用于分群体统计在线用户数的方法,其特征在于,在接收客户端的访问请求之前,执行下述操作:
在每一特征参数分组中,按照本分组特征参数值的字符串形式进一步划分为完备匹配子分组、前缀匹配子分组、和/或后缀匹配子分组,并将所述每个子分组包含的字符串按字典序排序;
相应的,所述将所述访问请求中与特征参数相关的信息分别与本分组中的字符串进行匹配是指,针对本分组中的每个子分组采用逐步调整可匹配字符串区间的上下界的方式进行匹配。
7.根据权利要求1所述的用于分群体统计在线用户数的方法,其特征在于,所述根据所述访问请求包含的信息确定所述客户端所属的用户群体,并对该用户群体的当前在线用户数目执行加一操作是指,
根据所述访问请求包含的信息,采用机器学习的方式归纳所述客户端所属用户群体的群体特征,并对所述用户群体的在线用户数目执行加一操作。
8.根据权利要求7所述的用于分群体统计在线用户数的方法,其特征在于,在接收客户端的访问请求之前,执行下述操作:
设置用于归纳用户群体特征的一个或者多个特征参数;
创建一个用于记录用户群体特征值以及对应的当前在线用户数目的哈希表;
相应的,所述根据所述访问请求包含的信息,采用机器学习的方式归纳所述客户端所属用户群体的群体特征,并对所述用户群体的在线用户数目执行加一操作,包括:
提取所述访问请求中包含的、与预先设置的特征参数对应的信息,作为所述客户端所属用户群体的特征参数值;
判断所述哈希表中是否存在所述特征参数值对应的表项;
若存在,则将对应表项记录的当前在线用户数目加一;
若不存在,则向所述哈希表中添加以所述特征参数值为键值的表项,并将该表项的当前在线用户数目设置为1。
9.根据权利要求2-8任一所述的用于分群体统计在线用户数的方法,其特征在于,包括:
接收查询某个具体的用户群体的当前在线用户数目的请求,所述请求中包含待查询用户群体的特征参数值;
在当前统计的用户群体信息中,查找特征参数值与所述查询请求包含的特征参数值一致的用户群体;
将找到的用户群体的当前在线用户数目返回给所述请求的发起方。
10.根据权利要求2-8任一所述的用于分群体统计在线用户数的方法,其特征在于,包括:
接收查询所有用户群体的当前在线用户数目的请求;
将当前统计的所有用户群体及其当前在线用户数目返回给所述请求的发起方。
11.根据权利要求2-8任一所述的用于分群体统计在线用户数的方法,其特征在于,包括:
接收查询与指定特征参数值满足模糊匹配要求的某一类用户群体的当前在线用户数目的请求,所述请求中包含所述指定的特征参数值;
在当前统计的用户群体信息中,查找特征参数值与所述指定特征参数值满足模糊匹配要求的用户群体;
将找到的用户群体及其当前在线用户数目返回给所述请求的发起方。
12.根据权利要求1所述的用于分群体统计在线用户数的方法,其特征在于,所述客户端的访问请求,是由前端调度服务器根据所述访问请求包含的信息确定所述客户端所属用户群体、并通过向所述客户端提供与该用户群体对应的接入服务器地址信息的方式引导到所述接入服务器的。
13.一种用于分群体统计在线用户数的装置,其特征在于,所述装置部署在接入服务器上,包括:
访问请求接收单元,用于接收客户端的访问请求,并与所述客户端保持长连接状态;
用户群体确定单元,用于根据所述访问请求包含的信息确定所述客户端所属的用户群体;
用户数目累加单元,用于对所述用户 群体确定单元输出的用户群体的当前在线用户数目执行加一操作;
用户数目递减单元,用于在所述长连接关闭时,对所述用户群体确定单元输出的用户群体的当前在线用户数目执行减一操作;
其中,所述访问请求中至少包含客户端的版本信息;所述用户群体确定单元具体用于,将所述访问请求中与特征参数相关的信息,与所述用户群体特征列表中的用户群体的特征参数值进行匹配,匹配成功的用户群体即为所述客户端所属的用户群体。
14.根据权利要求13所述的用于分群体统计在线用户数的装置,其特征在于,所述装置还包括:
群体特征设置单元,用于在接收客户端的访问请求之前,设置用于描述用户群体的一个或者多个特征参数,并根据统计的需求定义所述特征参数的组合方式,以及每一种组合方式所包含的一种或多种特征参数值;用所述特征参数的不同组合方式以及不同的特征参数值描述不同的用户群体的特征,所描述的全部用户群体特征形成用户群体特征列表。
15.根据权利要求14所述的用于分群体统计在线用户数的装置,其特征在于,所述群体特征设置单元设置的用户群体的特征参数是指客户端版本参数。
16.根据权利要求14所述的用于分群体统计在线用户数的装置,其特征在于,所述群体特征设置单元定义的特征参数值包括以下两种形式:以完整的字符串作为用户群体的特征参数值;或者,以带有通配符的模糊字符串作为用户群体的特征参数值;
相应的,所述用户群体确定单元执行的匹配操作包括:完备匹配和/或者模糊匹配,所述模糊匹配包括:前缀匹配和/或者后缀匹配。
17.根据权利要求16所述的用于分群体统计在线用户数的装置,其特征在于,所述群体特征设置单元除了包含完成其主体功能的群体特征设置执行子单元之外,还包括:
用户群体编号子单元,用于对所述用户群体特征列表中的每个用户群体进行编号;
特征参数分组子单元,用于对用户群体特征列表按照不同的特征参数进行分组,得到一个或者多个特征参数分组;
相应的,所述用户群体确定单元包括:
分组匹配子单元:用于针对每一个特征参数分组,将所述访问请求中与特征参数相关的信息分别与本分组中的字符串进行匹配,并记录匹配成功的字符串所属用户群体的编号,作为该分组的匹配成功编号;
匹配结果提取子单元:用于提取每个特征参数分组的匹配成功编号中共有的编号,所述共有编号对应的用户群体即为所述客户端所属的用户群体。
18.根据权利要求17所述的用于分群体统计在线用户数的装置,其特征在于,所述群体特征设置单元还包括:
子分组划分与排序子单元,用于在每一特征参数分组中,按照本分组特征参数值的字符串形式进一步划分为完备匹配子分组、前缀匹配子分组、和/或后缀匹配子分组,并将所述每个子分组包含的字符串按字典序排序;
相应的,所述分组匹配子单元具体用于,针对每一个特征参数分组中的每个子分组,采用逐步调整可匹配字符串区间的上下界的方式进行匹配。
19.根据权利要求13所述的用于分群体统计在线用户数的装置,其特征在于,所述用户群体确定单元具体用于,根据所述访问请求包含的信息,采用机器学习的方式归纳所述客户端所属用户群体的群体特征。
20.根据权利要求19所述的用于分群体统计在线用户数的装置,其特征在于,所述装置还包括:
特征参数设置单元,用于在接收客户端的访问请求之前,设置用于归纳用户群体特征的一个或者多个特征参数;
哈希表创建单元,用于创建一个用于记录用户群体特征值以及对应的当前在线用户数目的哈希表;
相应的,所述用户群体确定单元具体用于,提取所述访问请求中包含的、与预先设置的特征参数对应的信息,作为所述客户端所属用户群体的特征参数值;
相应的,所述用户数目累加单元包括:
用户群体判断子单元,用于判断所述哈希表中是否存在所述特征参数值对应的表项;
用户数目累加执行子单元,用于当所述用户群体判断子单元的输出为“是”时,将与所述特征参数值对应的表项记录的当前在线用户数目加一;
用户群体创建子单元,用于当所述用户群体判断子单元的输出为“否”时,向所述哈希表中添加以所述特征参数值为键值的表项,并将该表项的当前在线用户数目设置为1。
21.根据权利要求14-20任一所述的用于分群体统计在线用户数的装置,其特征在于,所述装置还包括:
第一查询请求接收单元,用于接收查询某个具体的用户群体的当前在线用户数目的请求,所述请求中包含待查询用户群体的特征参数值;
第一查询请求处理单元,用于在当前统计的用户群体信息中,查找特征参数值与所述查询请求包含的特征参数值一致的用户群体;
第一查询结果返回单元,用于将找到的用户群体的当前在线用户数目返回给所述请求的发起方。
22.根据权利要求14-20任一所述的用于分群体统计在线用户数的装置,其特征在于,所述装置还包括:
第二查询请求接收单元,用于接收查询所有用户群体的当前在线用户数目的请求;
第二查询结果返回单元,用于将当前统计的所有用户群体及其当前在线用户数目返回给所述请求的发起方。
23.根据权利要求14-20任一所述的用于分群体统计在线用户数的装置,其特征在于,所述装置还包括:
第三查询请求接收单元,用于接收查询与指定特征参数值满足模糊匹配要求的某一类用户群体的当前在线用户数目的请求,所述请求中包含所述指定的特征参数值;
第三查询请求处理单元,用于在当前统计的用户群体信息中,查找特征参数值与所述指定特征参数值满足模糊匹配要求的用户群体;
第三查询结果返回单元,用于将找到的用户群体及其当前在线用户数目返回给所述请求的发起方。
24.根据权利要求13所述的用于分群体统计在线用户数的装置,其特征在于,所述访问请求接收单元接收的访问请求,是由前端调度服务器根据所述访问请求包含的信息确定所述客户端所属用户群体、并通过向所述客户端提供与该用户群体对应的接入服务器地址信息的方式引导到所述接入服务器的。
25.一种用于分群体统计在线用户数的系统,其特征在于,包括:根据上述权利要求13-24任一所述的用于分群体统计在线用户数的装置、向所述用于分群体统计在线用户数的装置发送访问请求的客户端、以及为所述客户端提供访问服务的后端应用服务器。
26.根据权利要求25所述的用于分群体统计在线用户数的系统,其特征在于,所述系统还包括:
前端调度服务器,用于根据客户端访问请求包含的信息为所述客户端提供接入服务器的地址信息,从而将属于不同用户群体的客户端访问请求分流到不同的接入服务器。
27.根据权利要求25-26任一所述的用于分群体统计在线用户数的系统,其特征在于,所述系统还包括:
用户群体查询设备,用于向所述用于分群体统计在线用户数的装置,查询用户群体的当前在线用户数,并根据查询结果进行聚合、分析、和/或展示处理。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410263816.3A CN105227386B (zh) | 2014-06-13 | 2014-06-13 | 用于分群体统计在线用户数的方法、装置及系统 |
HK16105059.9A HK1217143A1 (zh) | 2014-06-13 | 2016-05-04 | 用於分群體統計在線用戶數的方法、裝置及系統 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410263816.3A CN105227386B (zh) | 2014-06-13 | 2014-06-13 | 用于分群体统计在线用户数的方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105227386A CN105227386A (zh) | 2016-01-06 |
CN105227386B true CN105227386B (zh) | 2019-03-15 |
Family
ID=54996097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410263816.3A Active CN105227386B (zh) | 2014-06-13 | 2014-06-13 | 用于分群体统计在线用户数的方法、装置及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105227386B (zh) |
HK (1) | HK1217143A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106412018B (zh) * | 2016-08-31 | 2020-01-07 | 百度在线网络技术(北京)有限公司 | 消息推送方法和装置 |
CN111182464B (zh) * | 2019-11-28 | 2024-01-26 | 贵阳朗玛信息技术股份有限公司 | 一种在线采样的方法及装置 |
CN111988317B (zh) * | 2020-08-20 | 2023-03-14 | 郑州昂视信息科技有限公司 | 基于网络信息分析结果的判定方法及装置 |
CN113360783B (zh) * | 2021-06-21 | 2023-03-14 | 上海哔哩哔哩科技有限公司 | 用户在线列表更新方法、装置及计算机设备 |
CN113852204B (zh) * | 2021-10-13 | 2022-06-07 | 北京智盟信通科技有限公司 | 一种基于数字孪生的变电站三维全景监视系统及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101047517A (zh) * | 2006-04-20 | 2007-10-03 | 华为技术有限公司 | 一种群组型业务计费方法、系统及其设备 |
CN101557304A (zh) * | 2008-04-09 | 2009-10-14 | 北京闻言科技有限公司 | 一种统计分布式应用服务器在线用户数的方法 |
CN101860606A (zh) * | 2009-04-08 | 2010-10-13 | 北京博越世纪科技有限公司 | 一项在应急系统中分类统计手机用户的技术 |
CN102546709A (zh) * | 2010-12-29 | 2012-07-04 | 上海博泰悦臻电子设备制造有限公司 | 基于车载终端的公共聊天系统的用户统计方法及服务器 |
CN103746851A (zh) * | 2014-01-17 | 2014-04-23 | 中国联合网络通信集团有限公司 | 一种实现独立用户数统计的方法及装置 |
-
2014
- 2014-06-13 CN CN201410263816.3A patent/CN105227386B/zh active Active
-
2016
- 2016-05-04 HK HK16105059.9A patent/HK1217143A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101047517A (zh) * | 2006-04-20 | 2007-10-03 | 华为技术有限公司 | 一种群组型业务计费方法、系统及其设备 |
CN101557304A (zh) * | 2008-04-09 | 2009-10-14 | 北京闻言科技有限公司 | 一种统计分布式应用服务器在线用户数的方法 |
CN101860606A (zh) * | 2009-04-08 | 2010-10-13 | 北京博越世纪科技有限公司 | 一项在应急系统中分类统计手机用户的技术 |
CN102546709A (zh) * | 2010-12-29 | 2012-07-04 | 上海博泰悦臻电子设备制造有限公司 | 基于车载终端的公共聊天系统的用户统计方法及服务器 |
CN103746851A (zh) * | 2014-01-17 | 2014-04-23 | 中国联合网络通信集团有限公司 | 一种实现独立用户数统计的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
HK1217143A1 (zh) | 2016-12-23 |
CN105227386A (zh) | 2016-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220291974A1 (en) | Processing a query having calls to multiple data sources | |
CN105227386B (zh) | 用于分群体统计在线用户数的方法、装置及系统 | |
US11775501B2 (en) | Trace and span sampling and analysis for instrumented software | |
CN101902505B (zh) | 一种分布式dns查询日志的实时统计装置及方法 | |
CN106897909B (zh) | 一种电子发票打印及存储的云端服务系统和方法 | |
CN105335402B (zh) | 基于静态Cache的搜索方法、索引数据生成方法以及装置 | |
CN108268529B (zh) | 一种基于业务抽象和多引擎调度的数据汇总方法和系统 | |
CN102054000B (zh) | 数据查询方法、装置及系统 | |
CN110727727A (zh) | 一种数据库的统计方法及装置 | |
CN112204543A (zh) | 用于分布式系统的频繁模式分析 | |
CN103093377B (zh) | 一种广告投放方法和系统 | |
CN109753424B (zh) | Ab测试的方法和装置 | |
CN111126071B (zh) | 提问文本数据的确定方法、装置和客服群的数据处理方法 | |
US8819135B2 (en) | Method of performing data mediation, and an associated computer program product, data mediation device and information system | |
CN114398520A (zh) | 数据检索方法、系统、装置、电子设备及存储介质 | |
CN106899651A (zh) | 通信处理方法、系统及网络通信系统 | |
CN103457976A (zh) | 数据下载方法和系统 | |
US10545798B2 (en) | Resegmenting chunks of data for efficient load balancing across indexers | |
CN106326296A (zh) | 数据查询方法及装置 | |
US10171596B2 (en) | Automatic server cluster discovery | |
CN113992664B (zh) | 一种集群通信的方法、相关装置及存储介质 | |
CN107124293B (zh) | 一种分布式网络系统的协议管理方法及系统 | |
CN106850345B (zh) | 一种网络用户状态的监测及查询方法 | |
CN113424174A (zh) | 递归数据遍历模型 | |
CN105991373A (zh) | 一种应用协议识别方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1217143 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |