AI 时代下组织如何快速变革?如何提升全员 AI 技能?戳> 了解详情
写点什么

天猫双十一架构优化及应急预案

  • 2013-01-11
  • 本文字数:1331 字

    阅读完需:约 4 分钟

每年的双十一,在整体架构上最依仗的是过去几年持续建设的稳定的服务化技术体系和去 IOE 带来整体的扩展性和成本的控制能力。

今年在架构上做的比较大的优化有三点:

第一是导购系统的静态化改造。今年淘宝和天猫都分别根据自身的业务特性进行了 Detail 页面的静态化改造,但核心的思路都是通过 CDN+nginx+JBoss+ 缓存的架构,将页面信息进行静态化缓存。这次的优化突破了现有系统在 Web 服务器和 Java 处理信息的 CPU 瓶颈,将访问最密集的 Detail 集群的性能提升了 10 多倍,极大程度的缓解了突发流量场景下的性能和成本压力。在今年的阿里技术嘉年华上,淘宝 Detail 团队的君山分享了淘宝静态化改造的一些经验。后续我们也可以安排天猫 Detail 团队的同学分享下在不同的业务背景下技术选型的思考。

第二是天猫优惠系统的架构改造,整体上的思路是规则中心化计算本地化。简单来说,将优惠规则的计算推送到所有需要展现价格的上层业务系统进行,而不再集中在后端进行处理。通过这样的方式减少了分布式的调用和计算单点的瓶颈问题。

第三是支付核心路径的异步化。支付环节的系统瓶颈一直在于后端的银行系统吞吐率无法跟上支付宝的处理能力,大量的线程阻塞等待银行系统的返回。今年支付宝的同学们通过一个高可用的队列,异步处理对关键支付路径的调用,这样做的好处一方面让支付系统的处理资源得到了释放,最大化系统处理能力,另一方面也支撑了更加灵活的限流控制。

有了以上的基础,接下来就是对突发情况的应急预案准备了,我们的做法通常有两种:

一是业务降级,即舍弃一些非核心的业务,确保核心业务的系统资源和稳定运行。举个例子,天猫的美妆类目交易流程有个特性,购买部分商家的商品会附赠小样。这部分逻辑是会给核心交易系统增加额外的系统依赖的,如果大促出现紧急情况,我们就会考虑砍掉这部分特殊的逻辑,确保核心交易的稳定。

二是系统限流,关键服务进行限流控制,保护核心集群的系统稳定。

这两点看似简单,却对系统和代码段之间的耦合性要求极高,我们前期也做了大量的工作尽可能将系统之间的强依赖变为弱依赖,避免因为某一系统的性能下降导致反向的雪崩效应。

另一方面,对于限流的阈值评估同样是一个难点,我们首先要从根据历年来的业务变化数据和运营计划估算一个可能达到的交易额以及 UV 数量。然后计算我们可能达到的交易笔数和访问峰值。

其次,分析出每笔交易需要跟多少个系统进行交互,计算出每笔交易会对后端的商品中心, 用户中心,库存中心,优惠,物流等要调用多少次,得出一个支撑一次访问或是一笔交易的合理系统消耗公式。再次,通过线上压测的手段对线上各个集群的极限能力有个准确的认知。

最后再根据业务峰值、系统消耗公式、压测数据,去准备扩容的机器数量和限流的具体阀值。

今年是双十一准备的最为充分的一年,前期的功能测试、容量评估、应急预案都比以往做的更加仔细,一共 700 多个应急预案,从 9 月开始就不断的进行系统演练,确保每个应急预案的准确和便捷执行。所以整的来说,当天各个系统表现还是比较淡定的。

突发事件虽然也有发生,还是做到了冷静处理,所有情况都在掌控之中。 当然,无论是限流还是降级,都是以牺牲用户体验作为代价的,我们内部也在反思和讨论,以后可以把流控做的更加有趣些,让大家买的开心,等的不无聊。

2013-01-11 03:317833
用户头像

发布了 156 篇内容, 共 53.2 次阅读, 收获喜欢 7 次。

关注

评论

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

90分钟10个手写案例,从源码底层给你讲解7种线程池创建方式

小Q

学习 源码 架构 面试 多线程

阿里技术分享:电商IM消息平台,在群聊、直播场景下的技术实践

JackJiang

即时通讯 IM 群聊

朱嘉明:产业周期、科技周期与金融周期的失衡

CECBC

金融 科技

牛啤了!字节跳动Java岗面试官把内部面试题(含答案)泄露了,明年金三银四有望了

面试 算法 架构师

世界之书:《人类简史》与想象中的共同体

lidaobing

28天写作

点燃“云+AI”的烽火,照亮网络安全的月之暗面

脑极体

JVM垃圾回收性能分析

积极&丧

elasticsearch打怪升级之基础篇

泽睿

ES

盘点 2020 | 感悟总结

idonkeyliu

盘点2020

我不喜欢挫折教育

熊斌

成长 自我思考 自我独白 个体成长

工作多年还是只会用wait和notify?30分钟用案例告诉你有更好得选择

小Q

Java 学习 编程 架构 面试

Eureka 架构原理及其源码分析

Fox爱分享

Spring Cloud Eureka

“九章”问世,量子计算将如何影响区块链技术?

CECBC

量子计算机

架构2期第八周作业(1)

浮生一梦

极客大学架构师训练营 2组 第八周作业

第四周学习心得

cc

太牛了!在字节跳动我是如何当面试官的,Android篇

欢喜学安卓

android 程序员 面试 移动开发

算法爱好者福利—拓扑排序的简介及实现

比伯

Java 编程 架构 程序人生 算法

第四周命题作业

cc

微服务架构及其技术栈

Fox爱分享

微服务 Spring Cloud spring cloud alibaba

太赞了!2021疫情期间八家大厂的Android面试经历和真题整理,值得收藏!

欢喜学安卓

android 程序员 面试 移动开发

沪上首座“区块链生态谷”揭开面纱!

CECBC

大数据 生态产业

请回答2020:芯片巨头并购潮究竟意味着什么?

脑极体

架构师训练营第十三周作业

月殇

极客大学架构师训练营

详解C/C++协程实现原理及使用

赖猫

c++ 协程

架构师训练营第四周命题作业

Geek_xq

算法太TM重要了!实战讲述Flutter跨平台框架应用,3面直接拿到offer

欢喜学安卓

android 程序员 面试 移动开发

如何让组织文化不在虚无?

Alan

团队管理 个人提升 文化 28天写作

架构师训练营第 1 期 -week13

习习

滴滴开源Super-jacoco:java代码覆盖率收集平台

滴滴技术

Java 开源 滴滴开源 Super-Jacoco

极客大学架构师训练营 - 同城快递业务架构设计

好吃不贵

极客大学架构师训练营

【得物技术】基于配置的通用化动态报表平台设计与使用

得物技术

设计 动态 报表 平台 通用化

天猫双十一架构优化及应急预案_阿里巴巴_贾国清_InfoQ精选文章