AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

蘑菇街 11.11:流量超过预期,系统曾被冲垮

  • 2014-11-12
  • 本文字数:2276 字

    阅读完需:约 7 分钟

以导购起家的女性时尚电商蘑菇街目前已经上线自己的电商交易平台,全面转型为垂直电商。据官方数据显示,蘑菇街双十一交易额已突破一亿元,并提前完成了此前的预定目标。蘑菇街今年第一次自己做交易,虽说总的交易量只有天猫几分钟的量,但峰值时期系统的压力同样不小,并且他们也才刚刚开始。那蘑菇街是怎么准备这场战争的?相应做了哪些预案?带着这些问题,InfoQ 专门采访了蘑菇街的 CTO 岳旭强。岳旭强于 2004 年加入淘宝,参与并主导核心业务系统搭建,2007 年开始负责淘宝服务化体系建设。2010 年底离职创业,组建并带领蘑菇街技术团队,支撑蘑菇街的高速发展和业务转型,有丰富的架构设计和技术团队管理经验。

InfoQ:请介绍下双十一当天蘑菇街的交易情况,当天有多少的成交额?

岳旭强:截至 11 月 11 日 24 时,蘑菇街总成交额超过 3.37 亿,移动端成交占比持续稳定在 75% 以上,客单超过 250 元。双十一当天的成交额近 2 亿,虽然也就天猫几分钟的交易量,但是我们还是很激动,今年也是蘑菇街新的开始。

InfoQ:嗯,其实也很不错,蘑菇街第一次做交易就能交出了这么好的一份答案。双十一高峰时期系统的压力也不小吧,为了保证系统在这样的短时高并发场景下的稳定性以及高可用性,蘑菇街在架构方面做了哪些调整?

岳旭强:我们从去年年底一直到今年上半年一直在做架构方面调整。以前蘑菇街整个架构是混在一起的,没有什么架构可言,因为那个时候最主要的诉求就是灵活、简单、快速实现需求,所以技术方面没有太多东西。可以说从 2010 年底开始做蘑菇街一直到去年下半年,整个架构上没有太大的优化和调整,所有的东西就跟小网站一样的,代码都写在一起,只有一个大的代码库,也没有什么太多分层。

随着蘑菇街从导购网站向垂直电商的转型,系统也就开始变得越来越复杂。从去年年底开始,我们就着手架构方面的调整。其实所有的系统都一样,当大到一定程度后所要做的第一件事情都是拆分,也就是微服务化。拆分主要是从两个层面去做,我们先从垂直层面(业务)做了一些拆分,把交易、资金、评价、商品等服务化,每一个是单独的系统,系统与系统之间通过接口通信。

水平层面的话,我们把比较重要的应用的核心服务抽取出来,比如说资金业务、交易业务、商品业务。以前它们是一个单独的系统,可能从 Web 访问到中间的业务处理,再到 DB 都是在一起的,拆分之后,Web 服务和业务处理就被隔离开来,业务处理的服务也会被其它业务调用。拆分之后中间也就会用一些异步的消息机制来提高系统的稳定性。

拆分之后系统之间相互隔离,一定程度上提高了系统的稳定性。比如这次双十一活动中,11 号凌晨的时候活动系统垮了,但只是活动的相关业务不能访问,其它的业务不会受影响。

当然为了保证拆分后系统的稳定性,我们也开发了很多基础的组件,比如我们跨语言通讯的框架、缓存集群方案、内部系统负载均衡方案、数据库中间层。

InfoQ:交易场景下,数据库的读操作远大于写操作,这个时候数据库的负载也特别大。针对这次双十一,蘑菇街在数据库方面做了哪些优化?

岳旭强:数据库这块其实我们也是按照服务、业务来拆分的,比如负责交易的团队会全权负责交易系统的数据库,交易的数据库是独立的一个集群,使用的是 MySQL,有做读写分离,主要是使用我们自己研发的中间层 donquixote(堂吉柯德),它的主要功能是连接池、屏蔽非法 SQL、读写分离。

针对这次双十一,我们主要做了两件事,一个是硬件层面的扩容。一个是数据库 SQL 查询优化,我们大概花了两个月时间,把所有的 SQL 查询全部优化了一遍,虽然每一个都比较细小,但是最后综合起来的效果非常明显。同样的配置下,没有优化之前每秒处理的订单数大概是 900 单,优化之后每秒的可以处理的订单翻了一倍,1700 单。

InfoQ:秒杀这样的场景下,蘑菇街是如何保证数据的一致性的?

岳旭强:这个其实蛮麻烦的,以前蘑菇街做导购社区的时候,一致性的问题基本不用考虑。但是做交易的话,这个事就变得非常复杂,
秒杀这样的场景下,主要需要解决超卖和错单的问题。解决超卖,我们主要将秒杀交易全部异步化, 库存、优惠券的扣除都是异步队列消费时处理,同时保证最先入队的人先下单。解决错单的问题,会在交易下单时, 第一步 push 异步队列, 第二步日志打点, 后台处理同时校验日志、队列中的消息,以保证数据的正确性。

InfoQ:在双十一之前蘑菇街应该也做了很多次演练,双十一高峰期有没有出现演练时没有预想到的情况?

岳旭强:哈哈,当然有。一开始我们根据去年的交易情况以及最近的业务量对双十一的交易量做了个预估,我们觉得一天 1 个亿差不多了,数据库按照六七月份数据库的线上峰值为基准,放大八倍压测,Web 服务器按照十五倍压测,这是双十一前的准备。但是没想到 10 号凌晨就达到我们的预案值了,当时很紧张,但是也很开心。我们先是紧急做了处理,砍掉了很多短期影响不是很大的功能和业务,尽量的优化和减少系统的压力。接下来的一天时间又对数据库做了优化调整,包括限流等应急措施。Web 那块我们觉得 8 台机器问题不大,并且扩展也很容易之前的准备也比较充分,所以也没有把精力放在这上面。

11 号还没到 0 点的时候,11:56,活动系统就被冲垮了。限流保护都没有产生作用,瞬间被冲垮了,因为限流是需要延后一小点时间,数据过来后才做限制操作的,当时还没来得及,几台机器就垮掉了,这是没想到的。当时我们加了几台机器,终于在 0:11 的时候恢复正常了。第二天我们回放当天的日志,活动系统超过了我们当时预案的 10 多倍。这 10 多分钟,按照 10 号的量,可能损失就有 1000 万。

这两天我们也会复盘,总结一下这次遇到的问题,后续也希望能分享给 InfoQ 的读者。

2014-11-12 09:256791
用户头像

发布了 219 篇内容, 共 143.7 次阅读, 收获喜欢 194 次。

关注

评论

发布
暂无评论
发现更多内容

交易所开发:数字文明进化的基础设施革命

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 交易所开发代币开发

如何评估React Native结合小程序的技术架构?

xuyinyin

实战案例|利用MarsCode内置的DeepSeek服务,单元测试耗时缩短70%!

火山引擎开发者社区

🔥 新手也能懂!Shopee商品详情API接口全攻略

Noah

OpenAI的“噩梦”,DeepSeek V3-0324效率革命展现中国AI雄心

AI数据云Relyt

openai LLM DeepSeek

信用消费的"血栓"问题-逾期订单诊断指南

盐焗代码虾

支付宝 信用消费 问题解决 逾期

链游冷启动核弹:DeFi清算收益+社交裂变,7天零成本获取10万真实玩家

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

RealClip:轻量级战略能否打开全球小游戏市场的巨额潜力?

xuyinyin

在PyCharm中提升编程效率:通义灵码(DeepSeek)助手全攻略(新版)

阿里云云效

阿里云 云原生 通义灵码

几个实操案例,告诉你什么是真正可用的企业级通用智能体

王吉伟频道

自动化 智能体 AI应用 AI Agents 通用智能体

【FAQ】HarmonyOS SDK 闭源开放能力 —Push Kit(11)

HarmonyOS SDK

harmoyos

在PyCharm中提升编程效率:通义灵码(DeepSeek)助手全攻略(新版)

阿里巴巴云原生

阿里云 云原生 通义灵码

摊牌了!一文教会你轻松上手豆包MarsCode 编程助手!

火山引擎开发者社区

黑龙江省多家政务服务移动端及政企内部办公应用适配鸿蒙,加速智慧政务升级

最新动态

DApp开发中的LP分红系统:流动性激励机制的范式革命与生态重构

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

嘉为蓝鲸自动化运维中心V2.6:规范运维范式,保障数字化转型成果

嘉为蓝鲸

AIOPS 自动化运维

和鲸科技执行总裁殷自强受邀主讲华中附属同济医院大模型应用通识首期课程

ModelWhale

人工智能 大数据 医疗

运维人的AI外挂来了!WeOpsV4.20&V5.20深度集成三大模型实现知识沉淀

嘉为蓝鲸

自动化运维 #WeOps

中物院超级计算与数字智能2025年大会:嘉为蓝鲸揭秘数智化运维转型关键突破点

嘉为蓝鲸

智能运维 数智化

文献解读-SARS-CoV-2 variant Delta rapidly displaced variant Alpha in the United States and led to higher viral loads

INSVAST

生信服务 delta 变异检测 全基因组测序 基因分析

运维生态重构进行时:从嘉为蓝鲸全栈智能观测中心V4.4看全栈观测的AI化跃迁路径

嘉为蓝鲸

智能运维 产品发布 全栈智能观测中心

ITSM运营双引擎:科学度量指标体系×LLM智能分析实战

嘉为蓝鲸

运维 AIOPS ITSM

火山引擎云上实战: DeepSeek R1 大模型(全尺寸)

火山引擎开发者社区

【开始报名啦】4 月 12 日 TiDB 社区活动在南京!传统技术栈替换和 AI 浪潮正当时,面向未来的国产数据库怎么选择?

TiDB 社区干货传送门

数据库 AI 分布式数据库 医疗 国产数据库

行业合作丨Altair 携手政产学研各界,共探AI驱动制造业数字化转型新路径

Altair RapidMiner

AI 数字化转型 HPC 仿真 仿真驱动设计

Netty源码—Pipeline和Handler

不在线第一只蜗牛

Netty

如何通过CAD坐标找点?

在路上

cad cad看图 CAD看图王

CAD中镜像功能真好用,大大提高绘图效率!

在路上

cad cad看图 CAD看图王

数仓架构告别「补丁」时代!全新批流一体 Domino 架构终结“批流缝合”

YMatrix 超融合数据库

数据仓库 数据架构 流式数仓 超融合数据库 YMatrix

技术赋能与创新实践:基于低代码平台的高性能应用开发

JeeLowCode低代码平台

低代码 低代码开发 低代码平台 低代码, 低代码选择

什么是权威解析服务器?权威解析服务器有什么用?(国科云)

国科云

蘑菇街11.11:流量超过预期,系统曾被冲垮_DevOps & 平台工程_小盖_InfoQ精选文章