社交软件红包技术解密(十):手Q客户端针对2020年春节红包的技术实践
1)入口配置:
包含活动入口吊坠、小程序入口Banner和一些控制开关等配置内容。春节红包活动横跨小年、除夕、大年初一,每天有4场答题活动,有些场次为商家专场,因此入口配置中提前以列表形式定义好了各天各场次的具体活动信息。
2)大插屏配置:
包含活动预热大插屏的配置内容,由于刚开始时需求的不确定性,独立出来作为一份配置,后来还增加了分会场呼吸灯的配置内容。
3)错峰配置:
包含本次春节红包活动客户端错峰方案的配置内容,独立配置,可供手Q其它通用运营业务复用。
4)预下载配置:
包含春节红包活动客户端需要提前预下载的资源配置内容,本次活动资源预覆盖接入使用了QQ钱包业务搭建的资源预下载系统,因此配置参照了QQ钱包预下载系统制定的格式。
五、关于“错峰”
5.1、以往春节红包活动的错峰方案
错峰,目的是为了解决春节红包活动高峰对抽奖后台负载带来瞬间冲击的问题。以往春节红包活动的错峰方案,主要有以下两种。
1)通过客户端缓冲过程,控制对抽奖后台的请求:
通过控制参与抽奖的频率、限制抽奖的次数等方式来进行错峰,如摇一摇、刷一刷等。
2)通过对活动入口随机时间错峰显示,控制对抽奖后台的请求:
将所有用户随机均匀地映射到活动开始后的一段时间区间内,使用户错峰显示入口进入参与活动,如2019年春节的福袋。错峰时间的算法形如:hash(uin) % gap。
5.2、我们使用的错峰方案
上节提到的两种错峰方式,第二种与本次春节红包活动场景是比较吻合的。
不过,该方案存在一个问题:由于其随机性,使得有用户反馈身边其他人都能看到活动入口参与抽奖了,而自己却一直看不到入口。
针对方案二的问题,我们引入了用户地理位置的因素进行改进,下图描述了总体错峰方案