QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

蘑菇街 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:256659
用户头像

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

关注

评论

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

Qualcomm QCA9880 MAXON MX530VX MIMO Mini PCIE WiFi5 Module

MAXON

QCA9880

什么叫软件测试?如何学习?

测吧(北京)科技有限公司

测试

低代码平台助力AIGC:让人工智能技术更加普及和高效

加入高科技仿生人

人工智能 低代码 AIGC 人工智能技术

百度数据可视化Sugar BI:实时滚动地图大屏

百度开发者中心

大数据 百度智能云 sugar

玩转 ChatGPT+极狐GitLab|自动化的MR 变更评审来了

极狐GitLab

DevOps Code Review 极狐GitLab 代码合并 ChatGPT

浅谈开源测试平台RunnerGo的使用体验

爱研究代码的极客人

软件测试 Jmeter 性能测试 压力测试 runnergo

直播预约 | 邀您共同探讨虚拟数字人如何赋能教育信息化创新发展

3DCAT实时渲染

数字人 实时云渲染 虚拟数字人

火焰杯”软件测试开发选拔赛河北赛区颁奖典礼落幕

测吧(北京)科技有限公司

测试

测试工具也有程序错误

测吧(北京)科技有限公司

测试

MobTech SMSSDK|短信验证服务

MobTech袤博科技

使用卷积神经网络实现图片去摩尔纹

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 3 月 PK 榜

百度数据可视化Sugar BI:业务自助BI分析

百度开发者中心

百度云 大数据 sugar

测试开发岗面试前需要准备哪些内容呢?一节课带你搞定

测吧(北京)科技有限公司

测试

极光笔记 | 如何在Shopify中使用Engagelab(上)

极光JIGUANG

市场营销 邮件发送 用户运营

NFT钱包开发链游系统搭建技术

薇電13242772558

NFT

直播揭秘,人人都在聊的AI技能究竟怎么学?

科技热闻

Whats's New In Seata 1.6.x

阿里巴巴云原生

阿里云 开源 云原生 seata

华为工单宝:制造业数字化转型利器,项目管理助力售后服务自动化

科技怪授

华为云

数据散,管理难,制造企业如何走出数字化转型困局

科技怪授

华为云

Nexus3 环境配置

流火

nexus3 群晖 maven私服

编码的未来是根本不需要编码

引迈信息

前端 低代码 JNPF

Principle for Mac(交互式原型设计工具) v6.29.6免激活版

真大的脸盆

Mac 交互设计 Mac 软件 交互式产品原型设计工具

护航应用的“全科医生”,神州云科亮相四川卫生健康信息技术交流大会

通明湖

拒绝“爆雷”!GaussDB(for MySQL)新上线了这个功能

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 3 月 PK 榜

作业帮基于明道云开展的硬件业务数字化建设

明道云

商业智能公厕系统

光明源智慧厕所

智慧城市

小程序容器技术——组装式应用架构的新型实践

没有用户名丶

小程序容器

java线下面授培训,还是自学好?

小谷哥

华为云时习知助力华为终端全球零售门店,打造数字化人才培养最佳实践

科技怪授

华为云

中小企业上云如何降本增效,开年采购不容错过!

科技怪授

华为云

谁能真正替代你?AI辅助编码工具深度对比(chatGPT/Copilot/Cursor/New Bing)

Zhendong

GitHub ChatGPT New Bing Copilot

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