当前位置: 首页 > 科技观察

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

时间:2023-03-22 01:54:44 科技观察

天猫2019年双11交易峰值再创新高,达到每秒54.4万笔交易,是2009年首届双11的1360倍,亮眼的数字背后是架构的极致优化。阿里巴巴双十一是典型的电子商务闪购系统。这里总结几种常见的高并发场景:电商闪购,并发度极高,商品SKU丰富,系统瓶颈在于商品和订单的读写;feedstreaming业务,如微博等,系统性能瓶颈在于热点数据的并发读取请求;IM业务,用户点对点,数据读写统一,数据访问冲突小;从业务场景和挑战来看,电商秒杀难度最大。那么针对双十一场景,如何优化业务架构和系统架构呢?交易系统常见的整体架构为用户发起(浏览器/APP),最顶层,面向用户业务层,对用户请求进行业务逻辑判断,验证核心系统层,订单服务,商品服务,以及提供事务核心逻辑和数据访问。基于这个架构,架构师应该如何优化?主要包括:做好链路流量过滤拦截,充分利用缓存性能提升容量规划优秀的架构设计1.链路流量过滤拦截电商高并发失败的原因多半是因为请求压力落到数据层,数据读写锁冲突严重。事务对数据一致性要求高,进而导致响应时间高,导致上层所有请求超时,最终导致服务宕机。双11是闪购,是瞬时读写的高并发场景。这时候我们可以采用哪些业务方式:在用户请求层面,限制用户在x秒内只能提交一次,从而降低系统负载;双十一提前添加购物车,扣除商品库存,缩短交易流程,写入数据的入场时间尽可能分散;业务妥协,例如不同的会话,分散了一天中的交易;业务熔断降级,当系统流量超过承载能力时,部分流量将被丢弃,以保证系统的整体稳定性。附言。大家都在双十一购物,遇到页面提示服务器被冷清。2.充分利用缓存业务系统,大部分是读多写少的场景:商品查询,读请求,大批量购物车查询,读请求,大批量加入购物车,下单支付,写请求,相比于读请求量较小。因此,我们利用缓存的高性能来拦截99%的数据库外读请求,保证数据库的高可靠性。这是我们共同的解决方案。3.互联网公司提前规划容量,预估节日流量。需要用流量来预测机器是否扩容,数据库是否分库。这些都是架构师必备的系统容量规划能力。容量规划的核心是QPS预估和单机承载能力评估。QPS估算的方法有很多种,最常用的一种是业务估算。历年双十一的交易量曲线可以通过历史流量很好地预测当前的QPS,从而推进结构升级的部署。比如,阿里每年的交易量都在以一条“非常漂亮”的曲线增长。如何评价一个业务,一个服务单机功能的极限QPS?答:真实在线环境下的全链路压测。4.优秀的架构设计通过以上实践,我们可以大大提升节日期间高并发下的架构性能。但是对于一个完整的电商后台,我们还需要更多的架构设计,比如同步和异步模式的灵活运用。传统架构中,交易和物流是耦合的,但是资深架构师会引入消息中间件,创建同步物流订单,转化为消息发送,异步创建物流订单,大大提高了交易核心的稳定性。作为年薪百万的架构师,他们如何应对双十一的整体架构?全链路的顶层设计具有高度的抽象能力,必须知道;微服务架构设计高可用和并发设计你必须知道方法论和实践;业务妥协和架构容错,广义的负载均衡设计方法和实践,你必须知道。【本文为专栏作家《58神剑》原创稿件,转载请联系原作者】点击阅读更多本作者好文【责任编辑:赵宁宁TEL:(010)68476606】