Loading [MathJax]/jax/output/CommonHTML/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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
湖仓一体电商项目(一):项目背景和架构介绍
湖仓一体实时电商项目是基于某宝商城电商项目的电商数据分析平台,本项目在技术方面涉及大数据技术组件搭建,湖仓一体分层数仓设计、实时到离线数据指标分析及数据大屏可视化,项目所用到的技术组件都从基础搭建开始,目的在于湖仓一体架构中数据仓库与数据湖融合打通,实现企业级项目离线与实时数据指标分析。在业务方面目前暂时涉及到会员主题与商品主题,分析指标有用户实时登录信息分析、实时浏览pv/uv分析、实时商品浏览信息分析、用户积分指标分析,后续还会继续增加业务指标和完善架构设计。
Lansonli
2022/07/30
1.3K0
湖仓一体电商项目(一):项目背景和架构介绍
实时数仓:实时数仓3.0的演进之路
传统意义上我们通常将数据处理分为离线数据处理和实时数据处理。对于实时处理场景,我们一般又可以分为两类,一类诸如监控报警类、大屏展示类场景要求秒级甚至毫秒级;另一类诸如大部分实时报表的需求通常没有非常高的时效性要求,一般分钟级别,比如10分钟甚至30分钟以内都可以接受。
Freedom123
2024/03/29
5920
实时数仓:实时数仓3.0的演进之路
农业银行湖仓一体实时数仓建设探索实践
在数字化转型驱动下,实时化需求日益成为金融业数据应用新常态。传统离线数仓“T+N”数据供给模式,难于满足“T+0”等高时效场景需求;依托Storm、Spark Streaming、Flink等实时计算框架提供“端到端”的实时加工模式,无法沉淀实时数据资产,存在实时数据复用性低、烟囱式垂直建设等不足。
ApacheHudi
2023/11/06
1.7K0
农业银行湖仓一体实时数仓建设探索实践
数据湖框架之技术选型-Hudi、Delta Lake、Iceberg和Paimon
数据湖是一个集中式的存储库,允许你以任意规模存储多个来源、所有结构化和非结构化数据,可以按照原样存储数据,无需对数据进行结构化处理,并运行不同类型的分析对数据进行加工,例如:大数据处理、实时分析、机器学习,以指导做出更好地决策。
qihang
2024/03/16
8.7K1
数据湖(一):数据湖概念
数据湖是一个集中式的存储库,允许你以任意规模存储多个来源、所有结构化和非结构化数据,可以按照原样存储数据,无需对数据进行结构化处理,并运行不同类型的分析对数据进行加工,例如:大数据处理、实时分析、机器学习,以指导做出更好地决策。
Lansonli
2022/05/26
1.8K0
数据湖(一):数据湖概念
尘锋信息基于 Apache Paimon 的流批一体湖仓实践
尘锋信息 (www.dustess.com) 是基于企业微信生态的一站式私域运营管理解决方案供应商,致力于成为全行业首席私域运营与管理专家,帮助企业构建数字时代私域运营管理新模式,助力企业实现高质量发展。
从大数据到人工智能
2023/05/03
4K1
尘锋信息基于 Apache Paimon 的流批一体湖仓实践
大数据架构如何做到流批一体?
阿里妹导读:大数据与现有的科技手段结合,对大多数产业而言都能产生巨大的经济及社会价值。这也是当下许多企业,在大数据上深耕的原因。大数据分析场景需要解决哪些技术挑战?目前,有哪些主流大数据架构模式及其发展?今天,我们都会一一解读,并介绍如何结合云上存储、计算组件,实现更优的通用大数据架构模式,以及该模式可以涵盖的典型数据处理场景。
shengjk1
2021/04/01
2.1K0
大数据架构如何做到流批一体?
字节跳动基于 Apache Hudi 的湖仓一体方案及应用实践
目前主流的数仓架构—— Lambda 架构,能够通过实时和离线两套链路、两套代码同时兼容实时数据与离线数据,做到通过批处理提供全面及准确的数据、通过流处理提供低延迟的数据,达到平衡延迟、吞吐量和容错性的目的。在实际应用中,为满足下游的即席查询,批处理和流处理的结果会进行合并。
王知无-import_bigdata
2023/09/18
8840
字节跳动基于 Apache Hudi 的湖仓一体方案及应用实践
数据湖|Flink + Iceberg 全场景实时数仓的建设实践
摘要:Apache Flink 是目前大数据领域非常流行的流批统一的计算引擎,数据湖是顺应云时代发展潮流的新型技术架构,以 Iceberg、Hudi、Delta 为代表的解决方案应运而生,Iceberg 目前支持 Flink 通过 DataStream API /Table API 将数据写入 Iceberg 的表,并提供对 Apache Flink 1.11.x 的集成支持。
大数据技术架构
2021/08/25
4.6K0
数据湖|Flink + Iceberg  全场景实时数仓的建设实践
字节跳动基于 Apache Hudi 的湖仓一体方案及应用实践
目前主流的数仓架构—— Lambda 架构,能够通过实时和离线两套链路、两套代码同时兼容实时数据与离线数据,做到通过批处理提供全面及准确的数据、通过流处理提供低延迟的数据,达到平衡延迟、吞吐量和容错性的目的。在实际应用中,为满足下游的即席查询,批处理和流处理的结果会进行合并。
ApacheHudi
2023/09/04
2K0
字节跳动基于 Apache Hudi 的湖仓一体方案及应用实践
湖仓一体
我理解就是各类数据爆发的公司当前数据平台架构遇到了各类各样的问题,寻求一个适配公司、平台的数据架构,一站式解决,但是大家对湖、仓本质的理解可能都不太一样,那又怎么谈湖仓一体呢。
jasong
2024/11/22
3420
流批一体在京东的探索与实践
提到流批一体,不得不提传统的大数据平台 —— Lambda 架构。它能够有效地支撑离线和实时的数据开发需求,但它流和批两条数据链路割裂所导致的高开发维护成本以及数据口径不一致是无法忽视的缺陷。
Spark学习技巧
2023/03/21
1.2K0
流批一体在京东的探索与实践
【流计算 Oceanus】巧用 Flink 实现高性能 ClickHouse 实时数仓
Apache Flink 是流式计算处理领域的领跑者。它凭借易用、高吞吐、低延迟、丰富的算子和原生状态支持等优势,多方位领先同领域的开源竞品。
KyleMeow
2021/11/25
5.2K3
实时数仓架构的演进与对比
1991年,比尔·恩门(Bill Inmon)出版了他的第一本关于数据仓库的书《Building the Data Warehouse》,标志着数据仓库概念的确立。
大数据学习与分享
2023/02/26
1.2K0
实时数仓架构的演进与对比
企业到底需要怎样的湖仓一体架构?| Q推荐
作者 | 郑思宇 在愈发复杂的大数据场景下,数据仓库与数据湖各自的弊端开始显现,湖仓一体架构走向舞台中央。此前,InfoQ 也曾在 《湖仓一体会成为企业的必选项吗?》 一文中提到,对于高速增长的企业来说,选择湖仓一体架构来替代传统的独立仓和独立湖,将成为不可逆转的趋势。 虽然业界对于湖仓一体的价值是高度认同的,但作为一种新兴的架构,大多数公司对于湖仓一体仍处在初期的探索阶段,有些企业甚至对于要选择怎样的湖仓一体架构仍旧是云里雾里。本文,我们希望从技术选型的角度出发,让你重新理解湖仓一体的本质与要求,扫除技
深度学习与Python
2023/03/29
5230
企业到底需要怎样的湖仓一体架构?| Q推荐
基于Flink+Hive构建流批一体准实时数仓
基于 Hive 的离线数仓往往是企业大数据生产系统中不可缺少的一环。Hive 数仓有很高的成熟度和稳定性,但由于它是离线的,延时很大。在一些对延时要求比较高的场景,需要另外搭建基于 Flink 的实时数仓,将链路延时降低到秒级。但是一套离线数仓加一套实时数仓的架构会带来超过两倍的资源消耗,甚至导致重复开发。
深度学习与Python
2020/09/28
2.3K0
基于Flink+Hive构建流批一体准实时数仓
干货|流批一体Hudi近实时数仓实践
传统意义上的数据集市主要处理T+1的数据。随着互联网的发展,当前越来越多的业务场景对于数据时效性提出了更高的要求,以便及时快速地进行数据分析和业务决策,比如依托实时数据情况开展实时推荐、实时风控、实时营销等。特别是各种新技术的出现、发展和日趋成熟,实时数据分析和处理也成为可能。实时的大规模数据处理成为企业数字化转型过程中需要破解的难题,也是企业当前面临的一个普遍需求。
大数据老哥
2021/08/25
6.5K0
干货|流批一体Hudi近实时数仓实践
告别「补丁」时代!全新批流一体 Domino 架构终结“批流缝合”
数字洪流冲击下,企业实时数据需求已突破传统架构的承载极限。当'批流缝合'架构深陷性能与时效的泥潭,Domino 以颠覆性设计直击本质:打破批流割裂的底层逻辑,重构数据价值流动范式。这不仅是技术革新,更是认知跃迁——数据世界正以'批流一体'为核心进行板块级重构。 诚邀你体验 YMatrix Domino 架构的变革力量:限时开放全功能企业版,开发者可零门槛接入真实业务场景压力测试。‌告别为架构冗余支付的性能'税款',突破线性时钟的决策延迟,让数据引擎真正驱动业务创新。
SQL数据库开发
2025/03/27
2700
告别「补丁」时代!全新批流一体 Domino 架构终结“批流缝合”
实时数仓方案五花八门,实际落地如何选型和构建!
著有:《图解 Spark 大数据快速分析实战》;《offer 来了:Java 面试核心知识点精讲(原理篇)》;《offer 来了:Java 面试核心知识点精讲(架构篇)》。
小晨说数据
2022/11/18
4.7K0
实时数仓方案五花八门,实际落地如何选型和构建!
腾讯广告业务基于Apache Flink + Hudi的批流一体实践
广告主和代理商通过广告投放平台来进行广告投放,由多个媒介进行广告展示 ,从而触达到潜在用户。整个过程中会产生各种各样的数据,比如展现数据、点击数据。其中非常重要的数据是计费数据,以计费日志为依据向上可统计如行业维度、客户维度的消耗数据,分析不同维度的计费数据有助于业务及时进行商业决策,但目前部门内消耗统计以离线为主,这种T+1延迟的结果已经无法满足商业分析同学的日常分析需求,所以我们的目标为:建设口径统一的实时消耗数据,结合BI工具的自动化配置和展现能力,满足业务实时多维消耗分析,提高数据运营的效率和数据准确性。
大数据真好玩
2022/06/17
1.4K0
腾讯广告业务基于Apache Flink + Hudi的批流一体实践
推荐阅读
相关推荐
湖仓一体电商项目(一):项目背景和架构介绍
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档