每秒50W笔交易,阿里双十一,架构如何优化到极致!

开发 开发工具 架构
2019 天猫双 11 交易峰值创下新纪录,达到 54.4 万笔/秒,是 2009 年第一次双 11 的1360倍。绚丽数字背后,是架构的极致优化。

2019 天猫双 11 交易峰值创下新纪录,达到 54.4 万笔/秒,是 2009 年第一次双 11 的1360倍。

绚丽数字背后,是架构的极致优化。

[[351059]]

阿里双十一是典型的电商秒杀系统,这里我们总结几种常见的高并发场景:

  • 电商秒杀,并发量极高,商品SKU丰富,系统的瓶颈在商品、订单的读写;
  • Feed流业务,像微博等,系统性能瓶颈在于热点数据的读并发请求;
  • IM业务,用户点对点,数据读写均匀,数据访问冲突较小;

从业务场景和挑战难度上,电商秒杀难度最大。那么对于双十一这种场景,业务架构和系统架构上需要如何优化呢?

交易系统常见的整体架构

  • 用户发起(浏览器/APP),最上层,面向用户
  • 业务层,对用户请求进行业务逻辑判断,校验
  • 核心系统层,订单服务、商品服务,提供交易的核心逻辑与数据访问

基于这个架构,架构师们应该如何优化?

主要有:

  • 做好链路流量过滤拦截
  • 充分利用缓存高性能
  • 提前进行容量规划
  • 优秀的架构设计

一、链路流量过滤拦截

电商高并发之所以挂,大部分原因是请求压力落到了数据层,数据读写锁冲突严重。交易对数据一致性要求高,进一步导致了响应耗时高,导致上层所有请求超时,最终服务宕机。

双十一属于秒杀,瞬时读写高并发场景。此时我们可以采用哪些业务手段:

  • 用户请求层面,限制用户x秒内只能提交一次,从而降低系统负载;
  • 双十一提前加购物车,将商品库存扣除,将交易流程变短,对数据写入时间尽可能分散;
  • 业务折中,比如不同的场次,将交易分散到全天;
  • 服务熔断降级,当系统流量大于承载能力时,抛弃部分流量保证系统整体稳定性。

PS. 大家双十一剁手,遇到服务器开小差的页面提示。

二、充分利用缓存

业务系统,大多是读多写少场景:

  • 商品的查询,读请求,量大
  • 购物车的查询,读请求,量大
  • 添加购物车、下单和支付,写请求,相比于读请求,量小

因此利用缓存的高性能,将99%读请求拦截在数据库之外,保证数据库的高可靠,是我们常用的方案。

三、提前容量规划

互联网企业,针对节日对流量进行预估。需要通过流量来预判机器是否扩容,数据库是否分库。这些都是架构师必备的系统容量规划的能力。

容量规划的核心是QPS预估,以及单机承载能力评估。

QPS预估有很多方法,最常用的就是业务预估。

历年双十一交易额曲线

通过历史的流量,可以很好的预测当前的QPS,从而提前布局架构升级。比如阿里每年的成交都以”非常优美“的曲线增长。

如何评估一个业务,一个服务单机能的极限QPS呢?

答:真实线上环境的全链路压力测试。

四、优秀的架构设计

通过以上的做法,我们能大大提高节日下高并发下的架构性能。但是一个完整的电商后台,我们还需要更多的架构设计,比如同步、异步模式的灵活运用。

传统的架构,交易和物流进行耦合,但是高级架构师会引入消息中间件,将同步的物流单创建,转化为消息发送,异步创建物流单,大大提高了交易核心的稳定性。

作为百万年薪级别的架构师,他们如何应对双十一的整体架构的呢?

  • 全链路的顶层设计,具备高度抽象的能力,必知必会;
  • 微服务架构设计的高可用、高并发设计方法论与实践,必知必会;
  • 业务折衷与架构容错能力,广义负载均衡设计方法与实践,必知必会。

【本文为51CTO专栏作者“58沈剑”原创稿件,转载请联系原作者】

戳这里,看该作者更多好文

【责任编辑:赵宁宁 TEL:(010)68476606】

责任编辑:赵宁宁 来源: 51CTO专栏
相关推荐

2020-06-30 15:50:16

MySQL速度执行

2014-11-06 17:15:06

阿里巴巴双十一阿里数据

2015-11-25 18:22:41

2019-07-22 10:33:40

程序员Java技术

2014-11-11 19:46:13

双十一云计算

2019-09-16 09:34:39

2017-11-20 18:10:37

普元

2013-08-22 09:36:45

阿里巴巴王坚阿里云

2013-01-10 11:32:12

阿里云双十一云计算

2020-02-19 14:37:11

hashtagRediskey

2014-11-06 16:09:31

阿里云双十一

2013-11-14 09:41:30

2018-11-08 15:10:02

阿里双十一架构

2018-04-12 13:24:24

程序员架构师源码

2014-11-28 10:53:37

2012-05-28 10:44:38

Sandy Bridg微服务器

2014-11-10 21:50:54

阿里巴巴双十一

2013-11-07 17:35:00

阿里COO双十一阿里巴巴

2018-11-27 16:11:01

阿里云Redis数据库

2019-08-27 08:51:36

计数数据库并发
点赞
收藏

51CTO技术栈公众号