QQ红包技术方案全解密(一)

本文揭秘QQ红包技术方案,包括接入层的预处理与频率控制,抽奖系统的缓存机制、一致性Hash和抽奖算法,以及发货系统的快慢分离和异步削峰策略,确保在大规模并发下提供稳定服务。
摘要由CSDN通过智能技术生成

前言

自2015年春节以来,QQ春节红包经历了企业红包(2015年)、刷一刷红包(2016年)和AR红包(2017年)几个阶段,通过不断创新玩法,活跃度节节攀升,成为春节一大玩点,给火红的春节带来一抹亮色。2017年除夕,AR红包、刷一刷红包再创新高,抢红包用户数达 3.42 亿,共刷出红包 37.77 亿个。

那么,QQ红包的技术方案究竟是怎样的?其整体架构如何?重要的系统是如何设计的?为了保证用户的体验,手Q终端做了哪些优化?今年的QQ红包又做了哪些新的尝试,遇到的问题是如何解决的呢?本文将从架构开始,到手Q终端优化,再到个性化红包和AR新玩法,为大家全面解密QQ红包技术方案。

一、QQ红包整体架构及重要系统

QQ春节红包以一个又一个的整点刷红包活动贯穿年三十,在除夕夜达到顶峰,是典型的海量用户秒杀场景,如何应对海量的用户刷红包洪流,保证刷得爽,红包安全到账,是QQ红包设计要解决的关键技术难点。另外,红包项目涉及手Q终端、手Q后台、QQ钱包(财付通)系统、礼券系统、公众号等诸多业务系统,流程长且多,各系统性能吞吐量差异很大,如何保证各系统形成一个有机整体,协调高效提供服务,也是难点之一。

下图为简化后QQ红包的架构,包括接入层、抽奖系统、存储系统、发货系统、公众号消息通知和CDN资源等几部分,请大家先有一个整体的认知,便于阅读下文。

本文将重点讲解接入层、抽奖系统和发货系统。

1.接入层

接入层是红包后台服务的大门,负责抽奖请求预处理,确保有效的请求才透传给后端服务。为保证自身高可用、高稳定,接入层还可实时控制手Q请求频率,避免海量请求压垮接入层,出现不可控局面。

在海量服务场景下,为避免网络开销,方便后端服务使用cache提升性能,接入层采用了一致性Hash寻址,保证同一个用户的请求只会落在同一台红包抽奖逻辑机器处理。

2.抽奖系统

抽奖系统作为QQ红包的核心系统,在承接用户抽奖请求,按设计合理的几率完成抽奖操作,将抽奖结果安全落地保存,并顺利发货等过程中,起到了关键作用。面对海量抽奖请求,如何及时作出响应,是抽奖系统面临的难题。

为了解决这些问题,我们采用了一些设计方法:

  • 在接入层采用一致性Hash算法,同一用户的抽奖请求只会转发到相同的抽奖系统处理;
  • 抽奖系统采用缓存机制,在加快抽奖过程的同时也减少了对存储层的访问压力; 奖品配额机制,平滑抽奖过程,各类奖品按比例有序抽中;

流水和对账机制,保证抽奖数据最终无差错发放到用户账户中;

抽奖系统的架构如下图所示:

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值