一种基于用户页面行为轨迹的白名单生成系统及方法
技术领域
本发明涉及视频直播中的白名单生成技术领域,具体来讲是一种基于用户页面行为轨迹的白名单生成系统及方法。
背景技术
随着互联网技术的迅速发展,越来越多的用户可以使用电脑、手机等终端通过网络观看在线视频直播。在线视频直播是指利用互联网网络资源进行的现场视频直播服务,通过现场的视频拍摄同步发布到网络上,用户可以同一时间在网络上看到实时的现场情况。
通常在视频直播过程中,直播间的主播会与进入直播间的用户进行互动。但为了保证互动活动的有效进行,通常需要对参与直播互动活动的用户进行限定,只允许在用户白名单中的用户才能参与互动。
目前,在视频直播领域中,采用的生成白名单的方法主要为:基于之前的用户数据,按时间周期(天、周、月)定期进行离线白名单的计算(生成),白名单的计算规则则需要按照指定规则实现代码逻辑,这样没办法保证白名单的及时性。并且,在视频直播网站的业务场景中,很多直播间主播在发起互动活动或者网站在发起专题活动时,需要只针对观看当前直播间的活跃用户或者在网站上活跃的用户进行互动,这时之前离线计算的白名单在精准度上会显得明显不足,也非常不适用。
因此,如何在视频直播领域寻找到一种实时性强、精准度高并适用特殊场景的白名单生成方法是我们亟待解决的问题。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种基于用户页面行为轨迹的白名单生成系统及方法,不但实时性强、精准度高,而且能满足各种特殊场景的适用要求,保证了互动活动的有效进行。
为达到以上目的,本发明提供一种基于用户页面行为轨迹的白名单生成系统,包括用户终端和直播平台服务器,用户终端内设置有轨迹记录单元,直播平台服务器内设置有缓存预处理单元、分布式实时计算单元和白名单输出单元;
所述轨迹记录单元用于:根据用户在观看直播过程中产生的页面间跳转的轨迹,记录下相应的页面跳转轨迹信息;将记录的页面跳转轨迹信息进行编码后提交给直播平台服务器;
所述缓存预处理单元用于:对各个用户终端提交的页面跳转轨迹信息进行缓存并预处理;定时将缓存的所有页面跳转轨迹信息以若干数据片的形式发送至分布式实时计算单元;
所述分布式实时计算单元包括若干个实时计算子单元,分布式实时计算单元用于将每个数据片按照哈希策略分配给一个指定的实时计算子单元;每个实时计算单元对数据片中的页面跳转轨迹信息进行解析并验证,将验证通过的页面跳转轨迹信息的用户ID添加到白名单中;
所述白名单输出单元用于:将添加有用户ID的白名单通过Restful接口或者RPC接口实时输出。
在上述技术方案的基础上,所述页面跳转轨迹信息包括当前页面URL、页面行为轨迹数据、用户ID和按照特定规则生成的识别码;所述页面行为轨迹数据是由页面ID拼接成的ID序列,所述识别码为固定长度,且生成后进行加密处理。
在上述技术方案的基础上,所述识别码的生成规则为:时间戳+设备API获取的唯一设备ID+随机数。
在上述技术方案的基础上,所述缓存预处理单元进行缓存时,会丢弃不符合要求的页面跳转轨迹信息;所述不符合要求的页面跳转轨迹信息包括:页面URL非法的页面跳转轨迹信息、页面行为轨迹数据无效的页面跳转轨迹信息、用户ID为空或者用户ID不符合数据字段类型的页面跳转轨迹信息、时间戳格式错误的页面跳转轨迹信息、用户终端类型标识非法的页面跳转轨迹信息。
本发明还提供一种基于用户页面行为轨迹的白名单生成方法,包括以下步骤:
A、每个用户终端的轨迹记录单元根据用户在观看直播过程中产生的页面间跳转的轨迹,记录下相应的页面跳转轨迹信息;将记录的页面跳转轨迹信息进行编码后提交给直播平台服务器,转入B;
B、直播平台服务器的缓存预处理单元对各个用户终端提交的页面跳转轨迹信息进行缓存并预处理,转入C;
C、缓存预处理单元定时将缓存的所有页面跳转轨迹信息以若干数据片的形式发送至分布式实时计算单元;分布式实时计算单元将每个数据片按照哈希策略分配给一个指定的实时计算子单元,转入D;
D、每个实时计算单元对数据片中的页面跳转轨迹信息进行解析并验证,将验证通过的页面跳转轨迹信息的用户ID添加到白名单中,转入E;
E、白名单输出单元将添加有用户ID的白名单通过Restful接口或者RPC接口实时输出,结束。
在上述技术方案的基础上,步骤A中所述页面跳转轨迹信息包括当前页面URL、页面行为轨迹数据、用户ID和按照特定规则生成的识别码;所述页面行为轨迹数据是由页面ID拼接成的ID序列,所述识别码为固定长度,且生成后进行加密处理;步骤B中,所述缓存预处理单元进行缓存时,会丢弃不符合要求的页面跳转轨迹信息;所述不符合要求的页面跳转轨迹信息包括:页面URL非法的页面跳转轨迹信息、页面行为轨迹数据无效的页面跳转轨迹信息、用户ID为空或者用户ID不符合数据字段类型的页面跳转轨迹信息、时间戳格式错误的页面跳转轨迹信息、用户终端类型标识非法的页面跳转轨迹信息。
在上述技术方案的基础上,步骤C中,缓存预处理单元定时将缓存的所有页面跳转轨迹信息以若干数据片的形式发送至分布式实时计算单元,具体包括以下操作:缓存预处理单元每隔1秒钟将当前缓存的所有页面跳转轨迹信息发送至分布式实时计算单元,每次发送时将页面跳转轨迹信息组合成若干小于等于1M的数据片进行发送。
在上述技术方案的基础上,步骤C中,分布式实时计算单元将每个数据片按照哈希策略分配给一个指定的实时计算子单元,具体包括以下操作:分布式实时计算单元为每个数据片分配一个唯一的ID号,将该ID号按照实时计算子单元的个数取模,获得的余数则对应指定的实时计算子单元的ID号;将数据片分配给对应ID号的实时计算子单元。
在上述技术方案的基础上,步骤A中所述页面跳转轨迹信息包括当前页面URL、页面行为轨迹数据、用户ID和按照特定规则生成的识别码;所述页面行为轨迹数据是由页面ID拼接成的ID序列,所述识别码为固定长度,且生成后进行加密处理;步骤D具体包括以下操作:每个实时计算子单元对数据片中的页面跳转轨迹信息进行解析,根据解析的页面跳转轨迹信息的识别码判断该页面跳转轨迹信息是否有效,若为无效,直接丢弃该页面跳转轨迹信息,结束;若为有效,则对该页面跳转轨迹信息的页面行为轨迹数据进行验证,若验证失败,则直接丢弃该页面行为轨迹数据,结束,若验证成功,则将该页面行为轨迹数据的用户ID添加到白名单中,转入E。
在上述技术方案的基础上,所述白名单包括多个白名单分片;步骤D中所述将验证通过的页面跳转轨迹信息的用户ID添加到白名单中,具体包括以下操作:将验证通过的页面跳转轨迹信息的用户ID按照指定的添加规则,添加到对应的一个白名单分片中。
本发明的有益效果在于:
1、本发明采用一种基于正常用户页面行为轨迹的策略来实时生成白名单。具体来说,本发明在用户终端设置有轨迹记录单元,该轨迹记录单元能根据用户在观看直播过程中产生的若干页面行为,记录下相应的页面行为信息,并将页面行为信息提交给直播平台服务器;同时,直播平台服务器设置有分布式实时计算单元,该分布式实时计算单元能对各用户终端提交的页面行为信息进行解析、验证,并将验证通过的页面行为信息的用户ID添加到白名单中,从而完成实时的在线白名单的生成。
与现有技术相比,本发明直接基于在线时的用户页面行为来生成实时的白名单,无需像现有技术一样通过定期进行离线白名单的计算来实现,不但实时性强、精准度高,而且能满足各种特殊场景的适用要求,保证了互动活动的有效进行,限制了非活跃用户和作弊用户的参与。
2、本发明中,直播平台服务器设置有缓存预处理单元,该缓存预处理单元不仅能对各用户终端提交的页面行为信息进行缓存和预处理,还能定时将缓存的所有页面行为信息以若干数据片的形式发送至分布式实时计算单元;并且,该分布式实时计算单元由若干个实时计算子单元组成,每个数据片被分配到指定的一个实时计算子单元进行处理,多个实时计算子单元就能同时处理多个数据片,处理效率极高,实时性更强。
3、本发明中,对数据片是按照哈希策略来选择所要提交的实时计算子单元的,目的是为了提高分布式实时计算单元的水平扩展能力,使得分布式实时计算单元可以根据要处理的数据量的规模来相应增减实时计算子单元的个数,使用灵活。
4、本发明将白名单分为多个白名单分片来存储用户ID,能满足大数据量的存储要求。
5、本发明将生成的白名单通过Restful接口或者RPC(Remote Procedure Calls,远程过程调用)接口实时输出,可提供给其他应用使用。其他应用基于此白名单,可以在多个重要场景中过滤无效用户账号,适用范围广。
附图说明
图1为本发明实施例中基于用户页面行为轨迹的白名单生成系统的结构框图;
图2为本发明实施例中基于用户页面行为轨迹的白名单生成方法的流程图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
参见图1所示,本发明实施例提供一种基于用户页面行为轨迹的白名单生成系统,包括用户终端和直播平台服务器,用户终端内设置有轨迹记录单元,直播平台服务器内设置有缓存预处理单元、分布式实时计算单元和白名单输出单元。
其中,轨迹记录单元用于:根据用户在观看直播过程中产生的页面间跳转的轨迹,记录下相应的页面跳转轨迹信息;将记录的页面跳转轨迹信息进行编码后提交给直播平台服务器。
可以理解的是,用户在观看直播的过程中,会在多个页面间跳转,每个页面都有一个页面ID,在跳转过程中会形成页面跳转的轨迹,这个轨迹的数据形式就是按照页面ID的先后顺序拼接而成,上限是10级,例如:1.2.3,就是指的从页面1跳转到页面2,页面2再跳转到页面3。本实施例中,页面跳转轨迹信息包括若干用于识别页面行为轨迹的标识:当前页面URL(Uniform/Universal Resource Locator,统一资源定位符)、页面行为轨迹数据(即由页面ID拼接成的ID序列)、用户唯一性的ID(即用户ID)和按照特定规则生成的识别码。其中,识别码的生成规则为:时间戳+设备API(Application Programming Interface,应用编程接口)获取的唯一设备ID+随机数;该识别码为固定长度,且生成后进行加密处理。
缓存预处理单元用于:对各个用户终端提交的页面跳转轨迹信息进行缓存并预处理;定时将缓存的所有页面跳转轨迹信息以若干数据片的形式发送至分布式实时计算单元。
分布式实时计算单元包括若干个实时计算子单元,分布式实时计算单元用于将每个数据片按照哈希策略分配给一个指定的实时计算子单元;每个实时计算单元对数据片中的每个页面跳转轨迹信息进行解析并验证,将验证通过的页面跳转轨迹信息的用户ID添加到白名单中。
白名单输出单元用于:将添加有用户ID的白名单通过Restful接口或者RPC接口输出。
参见图2所示,本发明实施例还提供一种应用上述系统的基于用户页面行为轨迹的白名单生成方法,包括以下步骤:
步骤S1:每个用户终端的轨迹记录单元根据用户在观看直播过程中产生的页面间跳转的轨迹,记录下相应的页面跳转轨迹信息;将记录的页面跳转轨迹信息组装成JSON格式,并对JSON字符串进行BASE64编码;将编码后的页面跳转轨迹信息提交给直播平台服务器,转入步骤S2。
步骤S2:直播平台服务器的缓存预处理单元对各个用户终端提交的页面跳转轨迹信息进行缓存并预处理(统一数据格式),转入步骤S3。
具体来说,缓存预处理单元进行缓存的具体过程为:对各个用户终端提交的页面跳转轨迹信息的JSON字符串进行BASE64解码,丢弃不符合要求的页面跳转轨迹信息。其中,不符合要求的页面跳转轨迹信息包括:页面URL非法的页面跳转轨迹信息、页面行为轨迹数据无效的页面跳转轨迹信息、用户ID为空或者用户ID不符合数据字段类型的页面跳转轨迹信息、时间戳格式错误的页面跳转轨迹信息、用户终端类型标识非法的页面跳转轨迹信息等。
并且,页面跳转轨迹信息预处理之后的数据格式如下:
步骤S3:缓存预处理单元定时将缓存的所有页面跳转轨迹信息以若干数据片的形式发送至分布式实时计算单元;分布式实时计算单元将每个数据片按照哈希策略分配给一个指定的实时计算子单元,转入步骤S4。
实际操作时,步骤S3中缓存预处理单元定时将缓存的所有页面跳转轨迹信息以若干数据片的形式发送至分布式实时计算单元,具体包括以下操作:缓存预处理单元每隔1秒钟将当前缓存的所有页面跳转轨迹信息发送至分布式实时计算单元,每次发送时将页面跳转轨迹信息组合成若干小于等于1M的数据片进行发送,即每个数据片由至少一个完整的页面跳转轨迹信息组成,且组成的数据片大小小于等于1M。例如:当前缓存的页面跳转轨迹信息共有三个,其大小分别为0.3M、0.4M和0.5M,则此次发送时,可将0.3M、0.4M的两个页面跳转轨迹信息组成一个数据片,再将0.5M的页面跳转轨迹信息组成另一数据片;最后将这两个数据片一起发送至分布式实时计算单元。
进一步地,步骤S3中分布式实时计算单元将每个数据片按照哈希策略分配给一个指定的实时计算子单元,具体包括以下操作:分布式实时计算单元为每个数据片分配一个唯一的ID号,将该ID号按照实时计算子单元的个数取模,获得的余数则对应指定的实时计算子单元的ID号;将数据片分配给对应ID号的实时计算子单元。本发明中,对数据片按哈希策略来选择所要提交的实时计算子单元,目的是为了提高分布式实时计算单元的水平扩展能力,使得分布式实时计算单元可以根据要处理的数据量的规模来相应增减实时计算子单元的个数。
步骤S4:每个实时计算子单元对数据片中的页面跳转轨迹信息进行解析,根据解析的页面跳转轨迹信息的识别码判断该页面跳转轨迹信息是否有效,若为有效,则转入步骤S5;否则,直接丢弃该页面跳转轨迹信息,结束。
其中,判断该页面跳转轨迹信息是否有效的具体过程如下:对页面跳转轨迹信息中的识别码进行解密,取出时间戳和设备ID,分别校验时间戳是否在合理范围内(即时间戳与当前服务器的时间差是否在一分钟内)、设备ID是否符合规范(即设备ID是否满足识别码的生成规则);若上述校验均通过,则判定该页面跳转轨迹信息是有效的,否则,判定为无效的。
步骤S5:实时计算子单元对该页面跳转轨迹信息的页面行为轨迹数据进行验证,若验证成功,则将该页面跳转轨迹信息的用户ID添加到白名单中,转入步骤S6(只有通过验证的用户页面行为轨迹数据才被视为正常用户页面跳转行为);若验证失败,则直接丢弃该页面行为信息,结束。
其中,对该页面跳转轨迹信息的页面行为轨迹数据进行验证的具体过程如下:解析获取页面跳转轨迹信息中的页面行为轨迹数据(即由页面ID拼接成的ID序列),判断页面行为轨迹数据是否符合已设置的页面级联规则(该页面级联规则可根据需要自行设置,也可采用默认设置),若符合,则判定验证成功;若不符合,则判定验证失败。
另外,可以理解的是,由于实际使用过程中,需要添加到白名单中的用户ID会非常多(用户群较大),因此,为了满足大数据量的存储要求,会将白名单分为多个白名单分片。基于上述技术,步骤S5中,将该页面跳转轨迹信息的用户ID添加到白名单中,具体包括以下操作:将验证通过的页面跳转轨迹信息中的用户ID按照指定的添加规则,添加到对应的一个白名单分片中。其中,所述指定的添加规则可根据需要自行设置,例如:将添加规则设置为按照用户ID的尾号进行划分,同一尾号的用户ID添加到一个白名单分片中。
步骤S6:白名单输出单元将添加有用户ID的所有白名单分片实时通过Restful接口或者RPC接口输出,结束。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。