Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >谈谈微信红包海量运营--发10亿个红包难在哪里?

谈谈微信红包海量运营--发10亿个红包难在哪里?

作者头像
腾讯大讲堂
发布于 2018-02-11 09:13:15
发布于 2018-02-11 09:13:15
1.2K0
举报

编者按:2015年微信红包书写了一个全新奇迹——除夕摇一摇总次数110亿次,峰值1400万次/秒,8.1亿次每分钟,微信红包收发达10.1亿次!惊人数字的背后,腾讯是怎么支撑的?笔者有幸节前采访到微信后台技术负责人,与大家分享红包背后的技术。

春晚当天,微信红包联合团队彻夜加班全程守护

400倍的挑战

今年微信红包方式与去年用户与用户之间互发红包相比,摇红包的方式对业务量来说是一个极大的爆发,光是除夕10:30送出的一波红包就达到了1.2亿个,已经是2014年除夕夜峰值的400倍之巨(2014年峰值每分钟被拆开红包数量仅2.5W个)!

进入抢红包环节,后台数据瞬间飙升

发10亿红包,难在哪里?

微信团队总结下来有三大难点:

快——如何保证用户快速摇到红包?

准——如何保证摇到的红包能成功拆开?

稳——如何保证拆开的红包能分享出去?

大量用户在同一时间摇红包,瞬间产生每秒千万级的请求,这个量级的请求如果不加以疏导处理直接到达后台,必定会导致后端服务过载甚至崩溃。

三大应对策略齐上阵

对于以上三个难点,微信后台开发团队主要通过三大应对策略应对:有损服务,柔性可用,大系统小做

  • 有损服务-追求高可用和快速响应。

什么是有损服务?有损服务是通过精心拆分产品流程,选择性牺牲一部分数据一致性和完整性从而保证核心功能绝大多数运行。这是腾讯在PC时代积累下来的一种特色运营策略——在资源一定的前提下,互联网条件千变万化的场景中,量力而为,满足用户的核心需求。

微信红包的核心点是摇,拆,分享红包,整个系统设计时必须尽最大可能保证这三个步骤一气呵成,任何关联系统出现异常的时候马上进行系统降级,防止引起系统雪崩。

系统降级可以分为两个方面,一是把核心功能进行分拆和简化,通过辅助轻量化的服务实现,确保最短关键路径的可行,比方说在接入层置入摇红包逻辑,将每秒千万级请求转化为每秒万级的红包请求,再传到红包服务的后端逻辑,降低雪崩的可能性。

同时后端采用异步分拆,接收到用户请求时仅进行合法性验证,验证完成后直接告知成功,后续业务逻辑进入异步队列进行处理,减少了用户的等待时间,也极大降低了峰值雪崩的概率。

耗时最长的入账操作,直接跳过,异步处理

另外一方面是采取过载保护措施:

微信红包的过载保护在客户端已提前预埋了策略,在连接失败或超时情况下会有相应提示,减少用户重复请求次数。接入层面也会进行自我保护,针对频繁发出请求的客户端限制响应速度,并对系统负载划分出若干等级,达到不同阈值时引导客户端使用不同限速速率;在异常情况出现时,采取减少红包数,异步限流降低拆/分享红包的速率等措施减轻服务器端压力;与此同时,微信红包还有全程压测流程,对整个业务链接进行自动提前评估,防止过载。

这画面你可能没见过,它其实早已在手机待命

在有损服务思想的重重保护下,第一波的摇红包体验活动中,微信红包几乎满分通过考验,其中过载保护的作用相当明显,在客户端、接入层层减压、过滤,最终仅把十万级压力传递到后台。

  • 柔性可用-细化场景把握核心需求。

柔性可用是在有损服务价值观支持下的方法,重点在于实际上会结合用户使用场景,根据资源消耗,调整产品策略,设计几个级别不同的用户体验场景,保证尽可能成功返回关键数据,并正常接受请求,绝不轻易倒下。

柔性服务更具有产品的思维性质,意义在于深刻理解产品每一个场景的核心价值,把握用户在每一个场景中的核心需求,设计不同层次的满足核心诉求的办法,对柔性服务在微信红包中的实践,红包团队也有相应的措施,主要可以分为几大类。

1、系统容灾面对大规模的请求量,系统容灾必不可少,容灾一般可分为逻辑层容灾和数据层容灾,这次微信后台开发团队在容灾布置中采用30%切换的逻辑层方案,即核心服务都能做到最多1/3服务器出问题的情况下自动容灾切换以保证服务质量,提高预警级别换取系统的可用性。

2、资源隔离:顾名思义就是把资源进行隔离减少服务支路间的影响,从逻辑入手,在资源逻辑中,当A服务同时分派任务给BC服务时,设定单个最大分配上限值,避免任意一个支路出问题影响整个服务链条,这样即使部分服务出现问题也不会影响到整个服务的崩塌。

3、快速拒绝:当服务过载时尽早拒绝请求,由服务调用方换机重试避免单一服务器重试过载,快速拒绝和有损服务中的及早拒绝是一个概念的方法,从过程的源头将问题解决,成本越低,影响越小,前端保护后端的方式来解决问题。

4、支付分组:从支付环节入手,将所有红包分为50个组,放在50个单独的set上互不影响,单组set出问题最多只影响1/50用户,保证多数人服务不受干扰。分组set化也是柔性可用的一个重要技术手段,这一思维非常类似于现实生活中的集装箱思维——通过标准化,规模化的箱体设计,应对复杂多样的货物,使每个流通环节既独立又不失灵活。

5、流量预加载:从客户端入手,将语音图片等极消耗流量的资源提前让客户端自动下载预置好,提前将流量洪峰疏导,并在活动当天CDN将准备数百G带宽应对,这块也与过载保护中的快慢分离是相通的,将耗流量的服务提前加载避免高峰期间的冲突。

  • 大系统小做-保证进程的功能单一

大系统小做应该来说,是一种意识,他的核心思想是将功能复杂较大的系统,化大为小,减少模块耦合,降低关联性,用多个独立的模块来实现整体系统的功能,大系统小做采用的是化繁为简,分而治之,便于开发和迅速实现。

微信红包如此庞大的后台系统,模块也相当之多,而这次的模块微信开发后台团队采用了系统高度模块化的方式,分成一个个高度自制的小系统,形成高内聚低耦合的格局,每个模块之间不会过分依赖对方,这样的好处是不会因为任何一个模块而影响全部服务,避免牵一发动全身的风险,实现真正的灰度服务。

海量服务能力决定成败

从2014的滴滴打车,到2015的微信红包,腾讯用一个个案例,去证明自身在海量服务方面的实力。事实上,真正支撑起微信红包顺畅运营的幕后英雄,正是腾讯内部一个叫做“海量之道2.0”的技术体系。有损服务,柔性服务,大系统小做三大手段也是脱胎于此体系中。移动互联网大战硝烟味愈浓,BAT都在为争夺支付入口使出浑身解数,在业务从起步到小跑再到腾飞的过程中,巨头背后的海量服务能力将对其最终成败有着来越发深远的影响。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-02-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯大讲堂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
设计抗100亿请求的春晚红包系统
源码:https://github.com/liubw320/10billionhongbaos
架构之家
2022/09/01
3180
设计抗100亿请求的春晚红包系统
社交软件红包技术解密(三):微信摇一摇红包雨背后的技术细节
与传统意义上的红包相比,手机端的红包似乎更符合现在年轻一代的习惯。这其中,以春节发红包最为流行。以微信为例,除夕全天微信用户红包总发送量可以达到百亿个,红包峰值收发量为比百万个/秒。
JackJiang
2024/11/06
2800
社交软件红包技术解密(三):微信摇一摇红包雨背后的技术细节
从技术角度谈一谈,我参与设计开发的手Q春节红包项目
今年春节期间,QQ以AR技术为支撑、娱乐体验为导向在春节期间推出系列红包并成功刷屏,系列红包包括三大玩法+年初一彩蛋,分别是“LBS+AR天降红包”、刷一刷红包和“面对面”红包,加上“娱乐红包”(明星刷脸红包),共计在春节期间派发了2.5亿现金红包和价值30亿的卡券礼包。根据企鹅智酷提供的数据,手机QQ的用户渗透率在全平台排名第二,为52.9%(第一是微信)。本文将会详细介绍手Q春节红包项目的设计、容灾、运维、架构以及总结。
Java高级架构
2018/08/16
1.1K0
从技术角度谈一谈,我参与设计开发的手Q春节红包项目
社交软件红包技术解密(二):解密微信摇一摇红包从0到1的技术演进
谢谢大家!我是来自腾讯WXG技术架构部的张文瑞,今天下午跟大家分享的主题是:微信团队是如何从0到1实现“有把握”的微信春晚摇一摇红包系统的。
JackJiang
2024/10/10
2190
社交软件红包技术解密(二):解密微信摇一摇红包从0到1的技术演进
社交软件红包技术解密(六):微信红包系统的存储层架构演进实践
南方企业一直有过年找老板“逗利是”的习俗,每年春节后开工的第一天,腾讯大厦都会排上长长的队伍,集体上楼找老板们领红包。按照广东习俗,已经结婚的同事也要给未婚同事发红包,这一天腾讯员工就在春茗和寻找红包中度过。
JackJiang
2025/01/24
2150
社交软件红包技术解密(六):微信红包系统的存储层架构演进实践
100亿次的挑战:如何实现一个“有把握”的春晚摇一摇系统
羊年春晚摇一摇活动已经落下帷幕,现在回过头来看看这一全民参与的有趣的活动背后,有着怎样的后台系统?这个系统又是如何被设计与实现出来的?
用户8964349
2021/09/06
8430
社交软件红包技术解密(十):手Q客户端针对2020年春节红包的技术实践
2020年春节早已过去两月有余,回顾本次腾讯手Q春节红包活动的玩法,主要以答题形式结合中国传统文化(成语、诗词、对联、历史等)的方式进行,达到寓教于乐的效果。
JackJiang
2020/04/06
8170
海量服务实践──手Q游戏春节红包项目设计与总结
1. 需求背景 1.1.红包类别 2017年的手Q春节游戏红包共有刷一刷/AR地图/扫福三种,如下图所示: 1.2.体验流程 虽然红包分三种,但在游戏业务侧这边的体验都是一样:用户得到一个红包卡券,打开后展示一个(刷一刷红包)或者多个(AR地图红包)游戏的礼包列表,用户选择一个礼包后弹出区服组件,用户确认对应的区服角色信息后会礼包会在48个小时内发放到账。体验如下: 1.3.后台需求 游戏红包的设计容量为入口卡券页流量80k/s,以上体验流程一共涉及三个后台接口: 礼包列表:用户界面的礼包内容需
小时光
2018/01/29
1.5K0
海量服务实践──手Q游戏春节红包项目设计与总结
【产品经理大会实录】5亿红包怎么发? ——谈摇一摇红包的产品方案
编 者按:5月10日,人人都是产品经理社区与腾讯大讲堂联手举办的《2015中国产品经理大会全国巡回-广州站》活动已圆满结束,讲堂君整理了当天分享精华,便于大家学习。 讲师:王鹏飞; 微信红包产品经理,春晚微信红包项目主要策划人之一,个人微信:tople2011 春晚,是一个很妙的东西。每年央视都会红红火火地办,而观众就热热闹闹地喷。其实,最开始听到要和春晚合作,我个人内心是拒绝的,怕用户“喷”屋及乌。这样一来,思考我们如何与春晚合作,给用户怎样的产品体验,就显得尤为重要。 接下来,就和大家谈谈,最终我
腾讯大讲堂
2018/02/12
9710
【产品经理大会实录】5亿红包怎么发? ——谈摇一摇红包的产品方案
一个“扛住100亿次请求”的春晚红包系统
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/03/04
5640
解密腾讯海量服务之道
一直对腾讯做产品的能力比较敬佩的,我们组做消息推送系统,而腾讯的信鸽就是我们学习的榜样。京东很多做产品的思想是跟腾讯学的,而京东很多同事也从腾讯过来的(京东合并了腾讯电商),耳濡目染学到很多东西。 前几天前腾讯的同事给我们分享了《解密腾讯海量服务之道》,讲了几个腾讯开发产品的经验原则,比较受益,遂总结下。 2个价值技术观, 7个技术手段, 4个意识 腾讯的海量服务之道是由2个价值技术观和7个技术手段,4个意识组成。技术价值观是总体思想,意识是我们的态度,技术手段是实现技术价值观的手段或者方法。 海量服务的技
用户1263954
2018/01/30
4.3K1
解密腾讯海量服务之道
社交软件红包技术解密(四):微信红包系统是如何应对高并发的
每年节假日,微信红包的收发数量都会暴涨,尤以除夕为最。如此大规模、高峰值的业务需要,背后需要怎样的技术支撑?百亿级别的红包规模,如何保证并发性能与资金安全?
JackJiang
2025/01/13
2510
社交软件红包技术解密(四):微信红包系统是如何应对高并发的
春节微信访问突发,存储业务如何平稳度过?
腾讯技术工程官方号
2017/11/30
1.2K0
春节微信访问突发,存储业务如何平稳度过?
QQ 红包技术方案全解密 (一)
serena
2017/06/06
6.4K3
QQ 红包技术方案全解密 (一)
80.8亿个微信红包技术难点在哪里?
摘要:今年除夕当日微信红包的参与人数达到4.2亿人,收发总量达80.8亿个,是羊年除夕10.1亿个的8倍。最高峰发生在00:06:09,每秒钟收发40.9万个红包。但是,红包大战受欢迎的程度和完美支撑
逸鹏
2018/04/10
1.5K0
80.8亿个微信红包技术难点在哪里?
拜年红包和春晚彩蛋——我们如何制造惊喜
腾讯大讲堂隆重推出【100亿次的挑战】系列海量服务之道2.0讲座,覆盖技术、产品、项目管理、支撑、支付5个维度。第二场【产品篇】3000名鹅厂员工参与,场面火爆!从今天起,大讲堂将陆续推出回顾文章,回馈广大讲堂用户。 讲师:siyu 今天在这里和大家分享一下微信春节红包项目中几个可能“出乎意料”的几个产品:我称呼它们为“春节的彩蛋”。 拜年红包从哪来? 2月17日,也就是除夕前一天,大概中午时候,大家会发现微信聊天界面附件栏中的红包icon变红了,同时单聊点击红包之后会出现两个选项:红包和拜年红包—
腾讯大讲堂
2018/02/12
8720
拜年红包和春晚彩蛋——我们如何制造惊喜
微信红包系统设计 & 优化
编者按:经过2014年一年的酝酿,2015微信红包总量创下历史新高,峰值1400万次/秒,8.1亿次每分钟,微信红包收发达10.1亿次,系统整体运行平稳, 在这里我分享下微信红包背后的技术。 讲师:jeri 核心功能&目标 首先,了解下微信红包的4个逻辑:摇/发/抢/拆。看似简单,实现可不简单再review下微信红包要实现目标: 摇:摇的流畅 快:抢的要快 爽:拆的爽 稳:能分享出去 系统难点 1.中国运营商网络环境复杂,覆盖面广,春节期间网络吃紧,容易出现网络故障 2.在尖峰摇时如何避免服务雪崩 3.
腾讯大讲堂
2018/02/12
4.5K0
微信红包系统设计 & 优化
中国技术力量:腾讯技术十七年
11月16日,QCon全球软件开发大会将在美国旧金山隆重开幕,在本次特别设置的中国技术开放日专场上,来自腾讯社交事业群的高级技术总监廖念波,将向国外技术同行分享腾讯的海量服务之道。 让腾讯来代表中国互联网的技术力量,我想没有人会表达什么疑问,刚好近日腾讯度过其十七周年,借着这个难得的机会,还是让我们来回顾一下腾讯这些年来技术的发展之路,看看技术是如何支撑当年一个小小的聊天软件成长为如今的巨头的。 从0到1亿的架构 关于腾讯早期的技术架构,有一个流传很广的说法:腾讯联合创始人、前CTO张志东,在早期为QQ设计
腾讯大讲堂
2018/02/12
1.4K0
中国技术力量:腾讯技术十七年
从0到1:微信后台系统的演进之路
“ 2个月的开发时间,微信后台系统经历了从0到1的过程。从小步慢跑到快速成长,经历了平台化到走出国门,微信交出的这份优异答卷,解题思路是怎样的?本文由张文瑞,微信后台团队出品。 从无到有 2011.1.21 微信正式发布。这一天距离微信项目启动日约为2个月。就在这2个月里,微信从无到有,大家可能会好奇这期间微信后台做的最重要的事情是什么? 我想应该是以下三件事: 1 确定了微信的消息模型 微信起初定位是一个通讯工具,作为通讯工具最核心的功能是收发消息。微信团队源于广硏团队,消息模型跟邮箱的邮件模型也很有渊
腾讯大数据
2023/03/03
1.6K0
从0到1:微信后台系统的演进之路
海量服务实践:手 Q 游戏春节红包项目设计与总结(下篇)
接上篇《海量服务实践:手 Q 游戏春节红包项目设计与总结(上篇)》 5.系统保障 第四部分讲述了业务需求的开发,但是否功能开发完成后我们就这样就可放到线上安心睡大觉了呢? 如果出现一部分
吴逸翔
2017/02/09
1.8K0
海量服务实践:手 Q 游戏春节红包项目设计与总结(下篇)
推荐阅读
相关推荐
设计抗100亿请求的春晚红包系统
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档