1.一种基于时间轮盘和页面行为的活跃用户集维护方法,其特征在于,该方法包括以下步骤:
A、将用户观看直播时的页面跳转轨迹数据进行编码,得到对应的页面行为信息,页面行为信息中包括若干页面行为识别标识,转到步骤B,所述页面跳转轨迹数据为:用户观看的所有页面的ID,按照观看的先后顺序拼接的ID序列;所述页面行为识别标识包括:页面的URL、页面跳转轨迹数据、用户ID和识别码;识别码为固定长度,生成后会进行加密;识别码的生成规则为:由时间戳、用户使用的终端设备ID和随机数排列而成;
B、对所有页面行为信息进行解码,根据解码后的页面行为识别标识,确定符合规定的页面行为信息;对符合规定的页面行为信息进行缓存和预处理后,得到页面行为预处理数据,转到步骤C,所述符合规定的页面行为信息中的页面行为识别标识需要同时满足以下条件:页面URL合法、页面跳转轨迹数据有效、用户ID不为空、用户ID符合数据字段类型、时间戳格式正确、用户终端类型标识合法;
C、将页面行为预处理数据组成若干数据片,每片数据片包括至少1条页面行为预处理数据;定时将当前所有缓存的数据片,按照哈希策略分配为若干组,转到步骤D;
D、确定每组数据片中所有验证通过的页面行为预处理数据;将所有验证通过的页面行为预处理数据对应的用户ID,更新至与当前时间对应的活跃用户集分片中,转到步骤E;所述活跃用户集分片是指:预先将活跃用户集按照指定的活跃计算时间段划分成的若干分片,且所述确定每组数据片中所有验证通过的页面行为预处理数据,具体包括以下流程:D01、分别对每组数据片中所有的页面行为预处理数据的识别码进行解密,得到时间戳和终端设备ID,判断时间戳是否在合理范围内、且终端设备ID符合规范,若是,转到步骤D02,否则确定当前页面行为预处理数据验证未通过,丢弃当前页面行为预处理数据;
D02、对当前页面行为预处理数据进行解析,得到页面跳转轨迹数据,判断页面跳转轨迹数据是否符合序列规则,若是,则确定当前页面行为预处理数据验证通过;否则确定当前页面行为预处理数据验证未通过,丢弃当前页面行为预处理数据;
E、定时将更新后的活跃用户集分片添加至预先创建的时间轮盘中,所述时间轮盘包括
1个首尾相连的环形数据结构缓冲循环队列,环形数据结构缓冲循环队列分为若干单元槽,每个单元槽中填充有一片活跃用户集分片;环形数据结构缓冲循环队列中设置有1个指向队尾单元槽的指针;
具体包括以下流程:定义时间轮盘中的顺时针方向为队尾至队首方向,逆时针方向为队首至队尾方向;定时周期过后,将时间轮盘中队首单元槽内的活跃用户集分片移出,其余每个单元槽内的活跃用户集分片,分别按照顺时针方向移动至下一个单元槽;将步骤D中更新后的活跃用户集分片添加至时间轮盘队尾的单元槽,将指针按照顺时针方向移动至下一个单元槽。
2.如权利要求1所述的基于时间轮盘和页面行为的活跃用户集维护方法,其特征在于:
步骤C中所述将当前所有缓存的数据片,按照哈希策略分配为若干组的具体流程为:定义若干组的总数量为N,为每片数据片分配一个唯一的ID号UUID;将每个UUID和N进行取模运算,取模运算得到的余数相同的所有数据片为相同组。
3.一种实现权利要求1或2任一项所述方法的基于时间轮盘和页面行为的活跃用户集维护系统,其特征在于,该系统包括位于每个终端设备上的页面行为信息生成模块、位于服务器上的缓存预处理模块、位于服务器上的数据片组成模块、位于服务器上的若干实时计算模块、以及位于服务器上的活跃用户集功能模块;
页面行为信息生成模块用于:将用户观看直播时的页面跳转轨迹数据进行编码,得到对应的页面行为信息,页面行为信息中包括若干页面行为识别标识,将页面行为信息提交至缓存预处理模块,所述页面行为信息生成模块进行编码的页面跳转轨迹数据为:用户观看的所有页面的ID,按照观看的先后顺序拼接的ID序列;所述页面行为信息生成模块得到的页面行为信息中的页面行为识别标识包括:页面的URL、页面跳转轨迹数据、用户ID和识别码;识别码为固定长度,生成后会进行加密;识别码的生成规则为:由时间戳、用户使用的终端设备ID和随机数排列而成;
缓存预处理模块用于:对所有收到的页面行为信息进行解码,根据解码后的页面行为识别标识,确定符合规定的页面行为信息;对符合规定的页面行为信息进行缓存和预处理后,得到页面行为预处理数据,定时向数据片组成模块发送数据片组成信号,所述缓存预处理模块确定的符合规定的页面行为信息中的页面行为识别标识需要同时满足以下条件:页面URL合法、页面跳转轨迹数据有效、用户ID不为空、用户ID符合数据字段类型、时间戳格式正确、用户终端类型标识合法;
数据片组成模块用于:收到数据片组成信号后,将页面行为预处理数据组成若干数据片,每片数据片包括至少1条页面行为预处理数据;定时将当前所有缓存的数据片,按照哈希策略分配至每个实时计算模块;
实时计算模块用于:对数据片组成模块分配的数据片中的所有页面行为预处理数据进行验证,确定所有验证通过的页面行为预处理数据;将所有验证通过的页面行为预处理数据对应的用户ID,更新至与当前时间对应的活跃用户集分片中;活跃用户集分片是指:预先将活跃用户集按照指定的活跃计算时间段划分成的若干分片,所述实时计算模块对数据片组成模块分配的数据片中的所有页面行为预处理数据进行验证时的具体流程为:对分配的数据片中的所有页面行为预处理数据的识别码进行解密,得到时间戳和终端设备ID,判断时间戳是否在合理范围内、且终端设备ID符合规范,若不是,确定当前页面行为预处理数据验证未通过,丢弃当前页面行为预处理数据;否则:对当前页面行为预处理数据进行解析,得到页面跳转轨迹数据,判断页面跳转轨迹数据是否符合序列规则,若是,则确定当前页面行为预处理数据验证通过;否则确定当前页面行为预处理数据验证未通过,丢弃当前页面行为预处理数据;
活跃用户集功能模块用于:定时将实时计算模块更新后的活跃用户集分片添加至预先创建的时间轮盘中,所述活跃用户集功能模块中的时间轮盘包括1个首尾相连的环形数据结构缓冲循环队列,环形数据结构缓冲循环队列分为若干单元槽,每个单元槽中填充有一片活跃用户集分片;环形数据结构缓冲循环队列中设置有1个指向队尾单元槽的指针;
在此基础上,活跃用户集功能模块具体用于:定时周期过后,将时间轮盘中队首单元槽内的活跃用户集分片移出,其余每个单元槽内的活跃用户集分片,分别按照顺时针方向移动至下一个单元槽,顺时针方向为队尾至队首方向,逆时针方向为队首至队尾方向;将实时计算模块更新后的活跃用户集分片添加至时间轮盘队尾的单元槽,将指针按照顺时针方向移动至下一个单元槽。
4.如权利要求3所述的基于时间轮盘和页面行为的活跃用户集维护系统,其特征在于:
所述数据片组成模块将当前所有缓存的数据片,按照哈希策略分配为若干组的具体流程为:定义若干组的总数量为N,为每片数据片分配一个唯一的ID号UUID;将每个UUID和N进行取模运算,取模运算得到的余数相同的所有数据片为相同组。