探秘电商秒杀抢购背后的 IT 架构

一年一度的双 11 购物节又要来了,剁手党们是否已经做好了准备?除了每年造就无数的败家买家外,双 11 也对各大各大电商平台的服务支撑提出了更高挑战。如何保证买家在购物过程中的流畅体验十分重要,再具性价比的商品在碰到网站无法响应时也会失去吸引力。因此,在各位买家开启买买买血拼模式的同时,各大电商平台也严阵以待,为一年中最繁忙的一天提供更强有力的 IT 技术保障。

我们注意到,虽然京东、淘宝、苏宁等大型电商已经凭借自身过硬的技术实力解决了高峰期间的 IT 压力,但是更多的中小型电商面对如此大的业务波动时还显得无能为力。在本次双 11 期间,我们将从技术角度出发,推出一系列专题文章,为大家解密电商平台的 IT 技术架构在面临秒杀抢购、消费者人物画像、商品推荐及搜索、业务高可用和多地访问、非结构化数据处理等业务场景的具体应对之策和技术实现。

今天的内容主要集中在秒杀及抢购背后的 IT 架构及实现。

电商秒杀活动的业务特点:
1、活动波峰波谷状态明显。电商通过秒杀活动为其经营产品造势,秒杀活动一般时间较为固定,活动通常需要经历产品发布、秒杀倒计时、到点秒杀、用户付款等一系列流程,在秒杀点前后服务器负载成峰值状态,服务器负载随着活动退却而减少。

2、秒杀通常涉及不止一个业务。电商秒杀活动,用户在等待秒杀的过程中也为电商网站带来了流量,当秒杀活动进行过程中,用户身份认证、支付业务、积分业务也会同时发生。

3、时间短、瞬时并发量高。秒杀活动是一个特别考验后台数据库、缓存服务的业务,对于数据库、缓存的性能要求特别严格。一旦后台数据服务没有跟上,秒杀活动将成为空谈。

秒杀背后的技术挑战:
1、突增的服务器及网络需求

双 11 这个万众狂欢的节日,对于电商员工来说,每个环节都面临前所未有的考验。

对 IT 运维部门来讲,需要备足充分的服务器和网络带宽资源来应付这一挑战。通常情况下,双 11 的服务器使用是平时的 3-5 倍,网络带宽是平时 2-4 倍,如何在短时间应付这些问题,如何让 IT 投资利用最大化,是摆在电商 IT 们面前一大难题。

2、业务高并发,服务负载重
我们通常衡量一个 Web 系统的吞吐率的指标是 QPS(Query Per Second,每秒处理请求数),解决每秒数万次的高并发场景,这个指标非常关键。

假设处理一个业务请求平均响应时间为 100 ms,同时,系统内有 20 台 Web 服务器,配置最大连接数为 500 个,Web 系统的理论峰值 QPS 为(理想化的计算方式):100000 (10万QPS)意味着 1 秒钟可以处理完 10 万的请求,而“秒杀”的那 5w/s 的秒杀似乎是“纸老虎”。

实际情况,在高并发的实际场景下,服务器处于高负载的状态,网络带宽被挤满,在这个时候平均响应时间会被大大增加。随着用户数量的增加,数据库连接进程增加,需要处理的上下文切换也越多,服务器造成负载压力越来越重。

3、业务耦合度高,引起系统“雪崩”
更可怕的问题是,当系统上某个应用因为延迟而变得不可用,用户的点击越频繁,恶性循环最终导致“雪崩”,因为其中一台服务器挂了,导致流量分散到其他正常工作的机器上,再导致正常的机器也挂,然后恶性循环,将整个系统拖垮。

电商秒杀活动应对策略
1、弹性资源伸缩,快速响应
不像传统 IT 模式,企业 IT 部门需要预先先采购大量的服务器及网络带宽资源,用户在青云QingCloud 上可即点即用服务器资源,随时满足电商用户的计算、网络、存储需求。通过灵活的公网 IP 策略,用户可以按照带宽和流量策略调整计费模式,随时扩缩资源情况。

除此之外,利用青云自动伸缩(AutoScaling)功能可以帮助用户基于资源的监控告警规则动态调节配置或集群规模,比如调整带宽上限,扩容关系型数据库的存储空间,增加或减少负载均衡器后端数量。

2、系统模块有效切分
为了防止系统应用过于耦合,我们一般建议用户在系统架构上做到有效切分,以防业务之间因为资源的争抢带来的相互影响:

  • 用户请求分发模块:通过青云的负载均衡器集群(Load Balancer Cluster)可以将一个公网 IP 的流量,分散到多个负载均衡器节点做并发处理,突破单负载均衡器节点的能力瓶颈,提供可扩展的转发带宽和 HTTPS 卸载能力。
  • 用户请求预处理模块:在内网开通多台主机,主机上尽量使用无状态服务器,主机上可以预处理用户请求,通过后端IO监控,随时增减主机数量。
  • 用户请求处理模块:把通过预处理的请求封装成事务提交给数据库,并返回是否成功。
  • 数据库接口模块:该模块是数据库的唯一接口,负责与数据库交互,提供RPC接口供查询是否秒杀结束、剩余数量等信息。另外QingCloud提供关系型数据库服务, 包括主从节点、高可用服务、读写分离、自动备份、在线扩容以及监控告警等各种管理功能。

3、充分利用缓存服务
缓存 (Cache) 可以提供高性能的缓存集群。一个集群包含多个缓存节点,支持主从、一主多从和多主多从架构,确保高可用。

另外,QingCloud 提供在线扩容,自动备份,监控告警和图形化操作等功能来管理集群;集群将运行于私有网络内,结合 QingCloud 提供的高性能硬盘,在保障高性能的同时兼顾您的数据安全。青云目前支持 Redis standalone、Redis cluster 和 Memcached 缓存。

电商秒杀活动架构部署
1、电商活动常见架构:

2、电商电商用户在青云上的架构展示:


3、重构经验
尽量将请求拦截在系统上游
传统秒杀系统之所以宕机,是因为服务请求都压倒了后端数据层,数据读写锁冲突严重,并发高响应慢,几乎所有请求都超时,流量虽大,下单成功的有效流量甚小。所以用户在做系统重构时候,根据业务特点首先在前端对数据进行请求拦截,以减少数据层面压力。

数据层扩展
构建数据库 Slave 集群,从单节点 MySQL 数据库转变为一主多从的数据库集群;创建内网 LB,对 Slave 集群做负载均衡,将数据库读请求分散到多个 Slave 节点上;根据功能做数据库读写分离。

读多写少的常用多使用缓存处理(推荐使用 Redis)
Redis 是一个 key-value 存储系统。和 Memcached 类似,它支持存储的 Value 类型相对更多,包括 String (字符串)、List(链表)、Set (集合)和 Zset (有序集合)。这些数据类型都支持 Push/Pop、Add/Remove 及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,Redis 支持各种不同方式的排序。

下面是 Redis 官方的 Bench-Mark 数据:
The test was done with 50 simultaneous clients performing 100000 requests.
The value SET and GET is a 256 bytes string.
(127.0.0.1).Results: about 110000 SETs per second, about 81000 GETs per second.
PS:更多详细数据见官方 Bench-Mark  Page:http://code.google.com/p/redis/wiki/Benchmarks

总结
随着互联网正在高速发展,使用电子商务服务的用户越多,高并发的场景也变得越来越多。电商秒杀活动是个比较典型的互联网高并发场景。我们一直坚信,优秀的业务架构需要不断结合实际生产需求进行设计,好的业务架构会一直进化。

青云QingCloud 作为企业级云服务提供商,也会不断的为用户提供简洁高效的架构经验,以满足用户业务环境的复杂多变。

原文发布时间为:2016年11月10日 

本文来自合作伙伴至顶网,了解相关信息可以关注至顶网。

时间: 2024-08-03 16:39:05

探秘电商秒杀抢购背后的 IT 架构的相关文章

【问底】徐汉彬:Web系统大规模并发——电商秒杀与抢购

[导读]徐汉彬曾在阿里巴巴和腾讯从事4年多的技术研发工作,负责过日请求量过亿的Web系统升级与重构,目前在小满科技创业,从事SaaS服务技术建设. 电商的秒杀和抢购,对我们来说,都不是一个陌生的东西.然而,从技术的角度来说,这对于Web系统是一个巨大的考验.当一个Web系统,在一秒钟内收到数以万计甚至更多请求时,系统的优化和稳定至关重要.这次我们会关注秒杀和抢购的技术实现和优化,同时,从技术层面揭开,为什么我们总是不容易抢到火车票的原因? 一.大规模并发带来的挑战 在过去的工作中,我曾经面对过5

Web系统大规模并发——电商秒杀与抢购

电商的秒杀和抢购,对我们来说,都不是一个陌生的东西.然而,从技术的角度来说,这对于Web系统是一个巨大的考验.当一个Web系统,在一秒钟内收到数以万计甚至更多请求时,系统的优化和稳定至关重要.这次我们会关注秒杀和抢购的技术实现和优化,同时,从技术层面揭开,为什么我们总是不容易抢到火车票的原因?  一.大规模并发带来的挑战  在过去的工作中,我曾经面对过5w每秒的高并发秒杀功能,在这个过程中,整个Web系统遇到了很多的问题和挑战.如果Web系统不做针对性的优化,会轻而易举地陷入到异常状态.我们现在

javascript电商网站抢购倒计时效果实现_javascript技巧

本文实例讲述了javascript电商网站抢购倒计时效果实现代码.分享给大家供大家参考.具体如下: 运行效果截图如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>团购--限时抢</title> </head> &

阿里云Redis读写分离典型场景:如何轻松搭建电商秒杀系统

阿里云数据库全新功能Redis读写分离,全维度技术解析 https://yq.aliyun.com/articles/277325 文末有彩蛋,请务必记得看完整哦 背景 秒杀活动是绝大部分电商选择的低价促销,推广品牌的方式.不仅可以给平台带来用户量,还可以提高平台知名度.一个好的秒杀系统,可以提高平台系统的稳定性和公平性,获得更好的用户体验,提升平台的口碑,从而提升秒杀活动的最大价值.本次主要讨论阿里云云数据库Redis缓存设计高并发的秒杀系统. 秒杀的特征 秒杀活动对稀缺或者特价的商品进行定时

生鲜电商热闹的背后:小众狂欢 盈利之门尚待开启

"一骑红尘妃子笑"的故事正在食品安全问题堪忧的中国重新上演,最新的一幕发生在美国驻华大使馆. 2013年7月2日,美国驻华大使骆家辉将一盒美国西北车厘子交到天猫总裁张勇手中.这些大樱桃从美国老家的树上被摘下来不超过72小时,即通过全程冷链空运国内.在天猫的网站上,它们以179元4斤的价格预售,短短数天已有超过2万人预订.此次涉及37个城市的美国大樱桃销售,天猫协调整合了十几家物流公司的资源共同配送. 阿里系开始涉足生鲜食品电商这场大秀,令业界为之一震.过去的2012年被喻为"

硝烟四起的电商价格战的背后

京东与苏宁大战已经持续几天之久,从线下大战延续到了线下,电商大战升级烧至实体店.8月15日,京东商城CEO刘强东宣称京东所有大家电价格都比苏宁线上线下便宜.苏宁易购.国美奋起迎战,苏宁易购称其"包括家电在内的所有产品价格必然低于京东,否则赔两倍差价",国美电器更是表示其"电子商城全线商品价格比 京东商城低5%",并将从17日起1700多家门店保持线上线下一个价,誓与与京东"死磕到底".一片混战之下,硝烟四起的电商价格战再度升级. 然而在这次大战中

电商玩创新背后折扣不给力:“双12”不给力

"双12"这一天,店商和电商都累了,玩创新的背后是折扣不给力,"重心放在传统的圣诞.元旦及新年促销上".提出"砸钱造节"的上海苏宁总部透露,12月14日零点,苏宁将在中山公园商圈的长宁路超级店正式发售iphone5,同推出16G.32G.64G,黑白色六款裸机,同时也可选择办理电信或者联通合约套餐,苏宁电器(002024,股吧)还将同步开通旧款iphone产品的以旧换新业务. 电商:新玩法无关折扣 淘宝网还针对所有买家推出了纪录片"淘宝

电商征税的背后

其实我国电商征税并不是张近东在今年两会期间提出议案之后才开始着手开展,实际上早先针对淘宝等网店要提供发票的税收政策就已经在尝试电商征税的方案,只不过由于张近东名头够响,再加上自己还有一个巨无霸的线下零售体,所以张近东的提案不得不让人无限遐想,其中一项就是以权谋私,通过引入电商税来打击线上买家,从而提升自身线下商店的销售额. 电商征税背后利益的博弈 张近东抛出的公平法案在大洋的彼岸也在同时上演,一个电商相对发达的国家推出电商税法案似乎合情合理,但是美国的电商税出台也经过了数年的风风雨雨,直到今年五

情趣电商APP性价比背后的故事

随着马佳佳及大象等品牌将情趣用品市场炒热,越来越多情趣用品电商浮出水面,情趣电商APP"性价比"是其中之一,最大的特色是只做移动端不做PC端,创始人黄天财认为,移动端的流量是创业红利. 2012年黄天财加入互联网创业大军,在O2O项目"省省"失败后,他选择了情趣用品电商作为切入点,理由是该行业目前在互联网上并不普及,更不存在互联网巨头的占领,这是一个被忽视的领域,但是却存在着巨大的发展机会. 最早黄天财是做情趣用品导购,慢慢转型为电商平台,虽然后端供应链管理等与普通