今天你开奖了吗?细数大厂春节红包背后的技术支撑( 二 )


同时 , 为了应对网络分裂的问题 , 微信团队在每个数据中心都建设三个独立的数据园区 , 可以做到在任意一个数据园区出现网络分裂等故障 , 甚至彻底变成园区孤岛后 , 另外两个数据园区可以无损承接整个数据中心的请求 。
3今天你扔骰子了吗?快手红包的实现
2021年2月5日 , 快手在香港上市 , 开盘涨194% , 报338港元/股 , 发行价115港元/股 , 总市值一度高达1.39万亿港元 。 今年 , 快手策划了攒牛气分21亿活动 , 其中包括扔骰子、集福气、拼牛气等游戏 。
2020年 , 快手成为了央视春晚独家互动合作伙伴 , 在“春节10亿现金红包”活动中 , 快手红包互动总量达到了639亿次 , 红包站外分享次数达到5.9亿次 。 快手春晚直播间累计观看人次7.8亿 , 最高同时在线人数2524万 。
快手在传统红包的基础上玩了很多新花样 , 增加了很多新年特效 , 例如新年灯牌、地标AR、萌娃拜年、我的一生等等 。
这些特效的实现应用了MR、AR等技术 。 MR是混合现实技术 , 将春节元素与现实世界融合 , 创造了一个虚拟和物理对象共存、且能够实时交互的环境 , 带来沉浸式的用户体验 。 快手App的MR算法通过单摄像头来采集图像数据 , 利用深度学习和立体几何算法估算出相机的位置 , 然后实时输出3D数据 , 成功将MR效果融合到真实世界 。
除了这些大家都能感受到的技术 , 还有一些背后默默支撑整个红包的技术实践 。 腾讯云高级工程师陈宏亮之前分享过腾讯云文件存储CFS如何支持快手应用广告推荐 。
据了解 , CFS文件存储主要与TKE容器节点搭配 , 在春节期间为快手的广告推荐业务提供保障 。 CFS主要参与三项具体的广告推荐业务流程 , 分别是模型文件发布、业务应用获取模型和广告推荐 。 春节期间 , 快手在腾讯云上使用了3个TKE容器集群共计4000+Node、Pod数量超过8000个 , 以分摊业务压力 。 这些Pod要将所需的几十GB不等的一组模型文件全部加载后(该组合总共若干组) , 应用才能启动 。
4今天你刷一刷了吗?QQ春节红包的实现
与其它平台的红包一样 , QQ春节红包也拥有多种形式 , 例如企业红包、刷一刷红包、AR红包等 。
据悉 , QQ春节红包项目涉及手机QQ移动端、手机QQQ后台、QQ钱包(财付通)系统、礼券系统、公众号等诸多业务系统 , 流程长且多 , 各系统性能吞吐量差异很大 。 QQ团队曾经分享过QQ2017年春节红包背后的技术实践 。
QQ红包的简化架构主要是由以下部分组成:接入层、抽奖系统、存储系统、发货系统、公众号消息通知和CDN资源 。 其中 , 接入层是红包后台服务的大门 , 负责抽奖请求预处理 , 确保有效的请求才透传给后端服务;抽奖系统是QQ红包的核心系统 , 负责承接用户抽奖请求 , 按设计合理的几率完成抽奖操作 , 并将抽奖结果安全落地保存;发货系统主要是确保最终礼品落地到用户账户中 , QQ钱包余额、QQ卡券或第三方系统账户 。
春节红包的主要特点就是海量、秒杀 , 用户期望的是看到红包之后能够顺畅地抢到 , 因此降低延迟、消除卡顿就是最直接的体验 , 甚至在弱网环境中 , 也能如丝般顺滑 。 基于此 , QQ团队在技术上面做了很多优化 。
首先是资源预加载 , 原本QQ红包中不经常变化的静态资源都会分发到各地CDN以提高访问速度 , 例如页面、图片、JS等 , 只有动态变化的内容才会实时从后台拉取 。 但是即使所有静态资源都采用CDN分发也无法支持流量洪峰 。 因此 , QQ团队采用了一个方法:使用手机QQ离线包机制提前把红包相关静态资源预加载到手机QQ移动端 , 以此来减轻CDN压力 。 离线包预加载的方式有两种 , 一是将静态资源放入预加载列表 , 二是主动推送离线包 。
其次是缓存和延时 , 当流量洪峰来临时 , 用户操作请求同时涌向后台 , 后台服务器是会崩溃的 , 即使后台扛住了 , 那么所需的带宽和设备资源成本也是天文数字 。 用户每次刷的操作都向后台发起请求是没必要的 , 因此 , QQ团队对用户的刷一刷次数做了汇总 , 定时异步将汇总数据提交到后台 , 再将结果反馈到QQ移动端 。
再次是错峰 , 通过运营手段将不同红包活动分散在不同时间点 , 有效减少请求峰值 。
最后是动态调整 , 手机QQ移动端和后台并不是两个孤立的系统 , 而是一个整体 。 手机QQ系统搭建有一整套的负载监控体系 , 当后台负载升高到警戒线时 , 手机QQ移动端可以根据后台负载情况 , 动态减少发向后台的请求 , 以防止后台出现超载而雪崩 。