微博红包技术最佳实践:架构及运维

简介: 云栖社区2017在线技术峰会红包技术分会上,来自微博红包团队的技术负责人柯立志分享了微博红包背后的技术实践。他介绍了红包的业务场景,从红包塞钱、抽奖、拆包模型、数据一致性、预热、异步化等方面介绍了红包系统的设计思路。此外,他对红包的系统保障和性能优化也进行了分享。

微博红包在春节也是一个比较热门的词汇,经常出现在各种事件流之中,但是微博红包面临的场景比较特殊,比如面临亿级用户的大规模场景,它背后的技术架构和技术结构是怎么样的呢?来自微博红包团队的技术负责人柯立志在云栖社区2017在线技术峰会红包技术分会现场分享了微博红包背后的技术实践。

视频回顾:点击进入

pdf下载:点击进入

红包业务场景

今年的场景新增了传送门和粉丝红包。传送门主要是通过用户下拉feed流获得红包,可以连续抢,得到奖品。粉丝红包有口令红包和普通红包,红包的业务规模如下图所示。

61f12037a54b273a119626cc45aafc4450a43c11 

红包面临的挑战包括:单个红包数额大;亿级别用户参与,覆盖全微博用户;红包种类多,业务复杂;整点准时抢,高并发访问量、瞬间峰值高;互动时间短,同步更新红包状态;多机房数据一致性保证。

红包系统设计

c0982430f4330af778de47ce8b3eb516aa5a60fb 

红包系统的整体架构包括应用层、服务层、资源层。应用层主要是用户的入口,任何一个用户进来之后都需要对其状态进行验证,所以需要进行用户状态验证。服务层包括各个服务模块,资源层则用到了数据库、Redis、MC、消息队列等。

红包塞钱

红包塞钱实现过程是:用户通过向客户端塞钱进红包,然后使用微博支付,经过队列后进行拆包服务,其他用户可以进红包进行抽取。在用户进红包之前,微博已经在队列中做了一些拆包的服务。

红包抽奖

99c3193729db73a7c9a641c2ad98494f39b997b5 

如上图所示,其中更新的红包状态包括用户的状态和红包剩余金额等。在红包的抽取过程中大量使用了异步处理,这样保证了用户前端的可用性。

红包拆包模型

01cee0b4c2d9d9ba6bbec0710b167b11bfda5c05 

微博拆包的金额在0.5-200元之间。最初采用了通用模型设计,保证了大额的、100左右的金额,导致了0.5的比较多。之后,采用了基于正态分布的模型,对红包进行插值使得整个红包的金额分配更趋于合理。处理大额拆包时,做到了10万以下金额秒级可以拆。对于10万以上金额先拆分成10万以下金额再进行拆分。

特定场景选定合适实现方式

3cffc84a2d27f26a295fe5a0b16c589c95fc7275 

最初的实现是通过Nginx后端PHP服务以及存储资源实现的。经过调研后,采用了Nginx的高并发可用性,基于lua脚本语言实现应用层的服务。这样能够让单台服务器的并发数量能有数量级的提升。其缺点是对于快速业务耗费的人力成本和调试成本更高。

数据一致性保证

在红包分发期间,微博用到的设备包括微博自有机房、阿里云包月机房、阿里云动态扩容(根据峰值实时动态扩容)。同时,各个机房之间MC的缓存需要同步,并且同步机制需要达到毫秒级才能保证所有用户看到的红包状态均一致。缓存资源的实现通过消息队列实现,若消息队列发现缓存积压的资源比较多,可以通过实时的删写来减少(前提是三个部署都存在,如果动态扩容则删写,如果动态扩容收容则不删写)。阿里云的机器都是实时分配的,所以我们需要有快速响应的机制来更快的进行扩容和对MC缓存资源的写。

预热

c69b8cf10d6b7a1f11eb2fc5d85f2a0945723cd2 

春晚当天,微博红包当晚从20点开始每个整点的推送。为了减少对应接口的用户信息,提前预热了一批MAU用户,减少可能由于峰值带来用户服务系统压力,在当天预热了MAU用户数据,这样做可以保证在每个整点时间到来之前的红包数据为热数据。

异步化

8ac3843698d1271ead069bb03a5560d82fac6fdf 

异步化就是用消息队列来处理一些类似于用户时间比较长或者需要消耗大量资源的处理。比如抽奖,在抽奖的核心逻辑里,运营可配置、用户信息、红包状态的判断均用到了异步化来验证当前的用户是否中现金、卡券或者其他奖品。用户中奖后,奖品将进入队列,进行现金兑账、现金进钱包、发私信,这样就给前端用户的抽奖节省了大量的时间,使得前端的接口响应时间非常快。

红包保障体系

监控

dd4d290e03d464ab2c0ff77a83b8ea91003d4c7b 

系统保障的前提是监控,监控主要通过五个层面来进行的。网络监控主要是监控专线带宽,微博在春节期间大量使用阿里云的机器,对于专线的监控是有必要的。服务监控主要是自有服务的监控,类似监控feed接口、客户端拆和抽、传送门等服务的响应时间以及服务接口返回的状态。设备监控主要是前端机、服务器的监控,包括CPU、内存、网卡等的监控。资源监控涉及到缓存资源、存储资源,资源也是通过网络协议进行调用的,所以网络层面的问题会导致资源的可用性降低、响应时间变长。所以在应用层或者底层架构上都对资源所涉及的相关端口做了一些监控,比如每一次连接的响应时间、操作的响应时间、每一种响应时间的占比。接口监控主要依赖于其他接口,类似于用户信息的接口、微博钱包支付接口、卡券接口。

预案和干预手段

预案主要做了两类,一类是能够快速扩容,因为在每一个推广的时间段都申请了部分冗余的服务器,如果负载异常则会实时部署上去;一类是快速切换,通过切层的切换快速应对突发情况。

服务降级主要在服务异常或者负载过高时对非核心链路进行降级。

系统性能优化

性能

2738a1fa607b8e6012b90a77c185affd8d6cfd16 

红包是由各个模块组成的,所以要对各个模块进行性能检测。性能检测的前提是制定性能指标,指标主要通过响应时间、接口输出大小制定。然后进行模块性能压测,分析模块具体消耗(时间及输出大小),根据具体点进行模块优化,直到模块性能达到标准才停止循环。

容量评估

7308dfc4ca19b75f4f0a42943aa5e287b3357e0f 

根据目前应用场景用户的DAU和MAU去预估在某个时间点最大的QPS。根据最大的QPS以及单机所承载的QPS预估应用服务器的数量。根据接口依赖程度、接口访问量占比预估每个接口输出的带宽,预算出整体的带宽占用来进行带宽方面的扩容以及预演。资源占用的评估主要根据最大的QPS以及后端端口资源需要使用的数量来评估,保证在出现预估范围内QPS时系统服务的稳定。

相关文章
|
7天前
|
存储 缓存 安全
某鱼电商接口架构深度剖析:从稳定性到高性能的技术密码
某鱼电商接口架构揭秘:分层解耦、安全加固、性能优化三维设计,实现200ms内响应、故障率低于0.1%。详解三层架构、多引擎存储、异步发布、WebSocket通信与全链路防护,助力开发者突破电商接口“三难”困境。
|
9天前
|
机器学习/深度学习 人工智能 搜索推荐
万字长文深度解析最新Deep Research技术:前沿架构、核心技术与未来展望
近期发生了什么自 2025 年 2 月 OpenAI 正式发布Deep Research以来,深度研究/深度搜索(Deep Research / Deep Search)正在成为信息检索与知识工作的全新范式:系统以多步推理驱动大规模联网检索、跨源证据。
670 52
|
10天前
|
运维 Prometheus 监控
别再“亡羊补牢”了!——聊聊如何优化企业的IT运维监控架构
别再“亡羊补牢”了!——聊聊如何优化企业的IT运维监控架构
64 7
|
25天前
|
人工智能 自然语言处理 安全
AI助教系统:基于大模型与智能体架构的新一代教育技术引擎
AI助教系统融合大语言模型、教育知识图谱、多模态交互与智能体架构,实现精准学情诊断、个性化辅导与主动教学。支持图文语音输入,本地化部署保障隐私,重构“教、学、评、辅”全链路,推动因材施教落地,助力教育数字化转型。(238字)
|
19天前
|
监控 数据可视化 数据库
低代码的系统化演进:从工具逻辑到平台架构的技术解读
低代码正从开发工具演变为支撑企业架构的智能平台,融合可视化开发、AI引擎与开放生态,实现高效构建、自动化运维与跨场景协同,推动数字化转型迈向智能化、系统化新阶段。
|
21天前
|
Java Linux 虚拟化
【Docker】(1)Docker的概述与架构,手把手带你安装Docker,云原生路上不可缺少的一门技术!
1. Docker简介 1.1 Docker是什么 为什么docker会出现? 假定您在开发一款平台项目,您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。 您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。 您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 **要求:**希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销 问题: 要如何确保应用能够在这些环境中运行和通过质量检测? 在部署过程中不出现令人头疼的版本、配置问题 无需重新编写代码和进行故障修复
215 2
|
21天前
|
数据采集 运维 监控
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
本文系统解析爬虫与自动化核心技术,涵盖HTTP请求、数据解析、分布式架构及反爬策略,结合Scrapy、Selenium等框架实战,助力构建高效、稳定、合规的数据采集系统。
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
|
14天前
|
存储 人工智能 搜索推荐
拔俗AI助教系统:基于大模型与智能体架构的新一代教育技术引擎
AI助教融合大语言模型、教育知识图谱、多模态感知与智能体技术,重构“教、学、评、辅”全链路。通过微调LLM、精准诊断错因、多模态交互与自主任务规划,实现个性化教学。轻量化部署与隐私保护设计保障落地安全,未来将向情感感知与教育深度协同演进。(238字)
|
29天前
|
人工智能 运维 监控
运维安全还能靠“人盯人”?别闹了,聊聊自动化处理的真功夫
运维安全还能靠“人盯人”?别闹了,聊聊自动化处理的真功夫
100 17
|
5月前
|
数据采集 机器学习/深度学习 人工智能
运维人的“福音”?AI 驱动的自动化网络监控到底香不香!
运维人的“福音”?AI 驱动的自动化网络监控到底香不香!
453 0

热门文章

最新文章