1.一种基于时间轮盘和用户行为的活跃用户集维护系统,包括若干用户终端和一个直播平台服务器,其特征在于:每个用户终端内设置有页面行为记录模块,直播平台服务器内设置有缓存预处理模块、分布式实时计算模块和活跃用户集功能模块;
所述页面行为记录模块用于:根据用户在观看直播过程中产生的若干页面行为,记录相应的页面行为信息并提交给直播平台服务器;
所述缓存预处理模块用于:对各用户终端提交的页面行为信息进行缓存和预处理;定时将缓存和预处理后的所有页面行为信息以若干数据片的形式发送至分布式实时计算模块;
所述分布式实时计算模块包括若干个实时计算子模块,分布式实时计算模块用于将收到的每个数据片按照哈希策略分配给一个指定的实时计算子模块;每个实时计算子模块对数据片中的页面行为信息进行解析并验证,将验证通过的页面行为信息对应的用户添加到当前时间对应的活跃用户集分片中,所述活跃用户集分片是将活跃用户集按照指定的活跃计算时间段划分成的若干分片;
其中,所述页面行为信息包括页面URL、事件ID、行为事件类型、用户ID和按照特定规则生成的识别码,识别码的生成规则为:时间戳+用户终端设备API获取的终端设备ID+随机数;
每个实时计算子模块对数据片中的页面行为信息进行解析,根据解析的页面行为信息的识别码判断该页面行为信息是否有效,若为无效,直接丢弃该页面行为信息,结束;若为有效,则对该页面行为信息的行为事件类型进行验证,若验证失败,则直接丢弃该页面行为信息,结束,若验证成功,则将该页面行为信息的用户ID添加到当前时间对应的活跃用户集分片中;
所述活跃用户集功能模块用于:以指定的活跃计算时间段为周期,将当前时间对应的活跃用户集分片更新到已创建的时间轮盘中,所述时间轮盘为一种数据结构,其主体是一个首尾相连的循环列表,该循环列表中包含有若干个称之为槽的单元,每个槽中填充有一个活跃用户集分片,且该循环列表还具有一个指向队尾的指针;
所述活跃用户集功能模块以指定的活跃计算时间段为周期,将当前时间对应的活跃用户集分片更新到已创建的时间轮盘中时,具体操作过程为:每经过指定的活跃计算时间段后,时间轮盘中每个槽内的活跃用户集分片向队首前移一格;将当前时间对应的活跃用户集分片更新到位于队尾的槽内;将时间轮盘上的指针向队首前移一格。
2.如权利要求1所述的基于时间轮盘和用户行为的活跃用户集维护系统,其特征在于:
所述识别码为固定长度,且经加密处理。
3.一种应用权利要求1所述系统的基于时间轮盘和用户行为的活跃用户集维护方法,其特征在于,包括以下步骤:A、每个用户终端的页面行为记录模块根据用户在观看直播过程中产生的若干页面行为,记录下相应的页面行为信息;将记录的页面行为信息提交给直播平台服务器;
B、直播平台服务器的缓存预处理模块对各个用户终端提交的页面行为信息进行缓存和预处理;
C、缓存预处理模块定时将缓存和预处理后的所有页面行为信息以若干数据片的形式发送至分布式实时计算模块;分布式实时计算模块将每个数据片按照哈希策略分配给一个指定的实时计算子模块;
D、每个实时计算子模块对数据片中的页面行为信息进行解析并验证,将验证通过的页面行为信息对应的用户添加到当前时间对应的活跃用户集分片中;
E、活跃用户集功能模块以活跃计算时间段为周期,定期将当前时间对应的活跃用户集分片更新到已创建的时间轮盘中;
其中,步骤A中所述页面行为信息包括页面URL、事件ID、行为事件类型、用户ID和按照特定规则生成的识别码,识别码的生成规则为:时间戳+用户终端设备API获取的终端设备ID+随机数;
步骤D具体包括以下操作:每个实时计算子模块对数据片中的页面行为信息进行解析,根据解析的页面行为信息的识别码判断该页面行为信息是否有效,若为无效,直接丢弃该页面行为信息,结束;若为有效,则对该页面行为信息的行为事件类型进行验证,若验证失败,则直接丢弃该页面行为信息,结束,若验证成功,则将该页面行为信息的用户ID添加到当前时间对应的活跃用户集分片中;
步骤E具体包括以下操作:每经过指定的活跃计算时间段后,时间轮盘中每个槽内的活跃用户集分片向队首前移一格;将当前时间对应的活跃用户集分片更新到位于队尾的槽内;将时间轮盘上的指针向队首前移一格。
4.如权利要求3所述的基于时间轮盘和用户行为的活跃用户集维护方法,其特征在于:
步骤B中,所述缓存预处理模块进行缓存时,会丢弃不符合要求的页面行为信息;所述不符合要求的页面行为信息包括:页面URL非法的页面行为信息、事件ID无效的页面行为信息、事件类型枚举值非法的页面行为信息、用户ID为空或者用户ID不符合数据字段类型的页面行为信息、时间戳格式错误的页面行为信息、以及用户终端类型标识非法的页面行为信息。
5.如权利要求3所述的基于时间轮盘和用户行为的活跃用户集维护方法,其特征在于:
步骤C中,缓存预处理模块定时将缓存和预处理后的所有页面行为信息以若干数据片的形式发送至分布式实时计算模块,具体包括以下操作:缓存预处理模块每隔1秒钟将当前缓存和预处理后的所有页面行为信息发送至分布式实时计算模块,每次发送时将页面行为信息组成若干小于等于1M的数据片进行发送。
6.如权利要求3所述的基于时间轮盘和用户行为的活跃用户集维护方法,其特征在于:
步骤C中,分布式实时计算模块将每个数据片按照哈希策略分配给一个指定的实时计算子模块,具体包括以下操作:分布式实时计算模块为每个数据片分配一个唯一的ID号,将该ID号按实时计算子模块的个数取模,获得的余数则对应指定的实时计算子模块的ID号;将数据片分配给对应ID号的实时计算子模块。