当前位置:首页 > 科技  > 软件

高并发秒杀方案:热点散列,库存分桶,你需要了解一下

来源: 责编: 时间:2024-02-01 12:48:19 313观看
导读在大规模秒杀活动中,针对单一商品的库存扣减请求峰值可以轻松达到几万、甚至几十万QPS,如常见的抢茅台活动。在这种场景下再基于数据库进行库存扣减就显得无能为力了,记住一个关键指标:在MySQL中,目前单行更新操作的的性能

在大规模秒杀活动中,针对单一商品的库存扣减请求峰值可以轻松达到几万、甚至几十万QPS,如常见的抢茅台活动。在这种场景下再基于数据库进行库存扣减就显得无能为力了,记住一个关键指标:在MySQL中,目前单行更新操作的的性能约为500QPS。对于动辄几万QPS的库存扣减来说,这个量级肯定是偏低了。HHh28资讯网——每日最新资讯28at.com

所以为了应对这种高并发场景,业界提出了一种方案叫 热点散列,即今天群里讨论的库存分桶。HHh28资讯网——每日最新资讯28at.com

其方案如下图所示:将同一商品的库存提前分配至多个“桶”中,根据路由规则(随机、UID取模)将库存请求路由至不同的桶,从而将集中于单实例的请求分散,此方案类似于水平扩展。HHh28资讯网——每日最新资讯28at.com

图片图片HHh28资讯网——每日最新资讯28at.com

至于“分桶”的技术实现,很多技术文章或解决方案都建议采用Redis来实现。具体而言,对任一秒杀活动的商品,可将其分成N份,每份对一个缓存Key,缓存Key的构成必须遵循一定的规律,便于路由,示例如下:HHh28资讯网——每日最新资讯28at.com

key: inventoryId_1,value: 库存数量 HHh28资讯网——每日最新资讯28at.com

key: inventoryId_2,  value: 库存数量 HHh28资讯网——每日最新资讯28at.com

... HHh28资讯网——每日最新资讯28at.com

key: inventoryId_N,  value: 库存数量HHh28资讯网——每日最新资讯28at.com

在扣减库存时,可以根据Key的编号区间,采用随机算法,UID取模等方式确定一个编号,然后组装Key访问缓存。 HHh28资讯网——每日最新资讯28at.com

举个例子,假如inventoryId为20221821,将库存分配至100个桶,则根据相应Key的区间为[1,100]。HHh28资讯网——每日最新资讯28at.com

服务端收到商品库存扣减请求后,将请求中的参数UID取模,假设UID % 100 = 67,则组装Key为 20221821_67,基于20221821_67扣减对应缓存桶中的库存。HHh28资讯网——每日最新资讯28at.com

热点散列的核心思想为:在缓存中扣减库存,以提升系统的吞吐量;缓存扣减成功后,异步向数据库写入库存扣减流水并更新库存;此外,还需要通过定时任务等机制实现缓存与数据库的库存总量同步。HHh28资讯网——每日最新资讯28at.com

这个方案看上去很不错,但也会存在如下三个问题:HHh28资讯网——每日最新资讯28at.com

一、在缓存中扣减库存如何保证幂等性呢?若幂等性防控不足,则可能出现重复扣减,进而导致少卖。HHh28资讯网——每日最新资讯28at.com

二、缓存写操作和数据库写操作无法通过事务机制来保证强一致性,那么该如何有效的保证库存数据的一致性呢?HHh28资讯网——每日最新资讯28at.com

三、用户所见的库存应为总库存,即便总库存充足,一旦分桶,如何保证用户请求被路由到的分桶油足够的库存呢?HHh28资讯网——每日最新资讯28at.com

所以个人觉得,热点散列在理论上是解决库存热点问题最有效的方案,但在实际应用中,需要考虑的细节非常多。基于缓存的库存扣减的方案是比较粗糙的,它只满足一些特定场景的需要。对于淘宝、京东这类在想商品规模达数十亿的大型电商平台而言,所面临的问题要复杂得多,除了稳定性、可靠性、一致性,还包括库存分配,库存碎片,库存扩缩容、流量倾斜、商品少卖、商品超卖等。HHh28资讯网——每日最新资讯28at.com

上次去阿里交流的时候,阿里专家唐三说:在阿里,库存架构采用的方案是做库存单元化架构,这种方案应该是大型电商平台库存系统的终极解决方案。HHh28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-70416-0.html高并发秒杀方案:热点散列,库存分桶,你需要了解一下

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 大规模敏捷测试怎么做(集成篇)

下一篇: 司空见惯的错误检测,原来还有这么多干货!

标签:
  • 热门焦点
  • 2023 年的 Node.js 生态系统

    随着技术的不断演进和创新,Node.js 在 2023 年达到了一个新的高度。Node.js 拥有一个庞大的生态系统,可以帮助开发人员更快地实现复杂的应用。本文就来看看 Node.js 最新的生
  • 使用AIGC工具提升安全工作效率

    在日常工作中,安全人员可能会涉及各种各样的安全任务,包括但不限于:开发某些安全工具的插件,满足自己特定的安全需求;自定义github搜索工具,快速查找所需的安全资料、漏洞poc、exp
  • 微博大门常打开,迎接海外画师漂洋东渡

    作者:互联网那些事“起猛了,我能看得懂日语了”。“为什么日本人说话我能听懂?”“中文不像中文,日语不像日语,但是我竟然看懂了”…&hell
  • 机构称Q2国内智能手机销量同比下滑4% vivo份额重回第1

    7月29日消息,根据市场调查机构Counterpoint Research公布的最新报告,2023年第2季度中国智能手机销量同比下降4%,创新自2014年以来第2季度销量新低。报
  • 2纳米决战2025

    集微网报道 从三强争霸到四雄逐鹿,2nm的厮杀声已然隐约传来。无论是老牌劲旅台积电、三星,还是誓言重回先进制程领先地位的英特尔,甚至初成立不久的新
  • iQOO 11S新品发布会

    iQOO将在7月4日19:00举行新品发布会,推出杭州亚运会电竞赛事官方用机iQOO 11S。
  • iQOO Neo8系列或定档5月23日:首发天玑9200+ 安卓跑分王者

    去年10月,iQOO推出了iQOO Neo7系列机型,不仅搭载了天玑9000+,而且是同价位唯一一款天玑9000+直屏旗舰,一经上市便受到了用户的广泛关注。在时隔半年后,
  • 与兆芯合作 联想推出全新旗舰版笔记本电脑开天N7系列

    联想与兆芯合作推出全新联想旗舰版笔记本电脑开天 N7系列。这个系列采用兆芯KX-6640MA处理器平台,KX-6640MA 处理器是采用了陆家嘴架构,16nm 工艺,4 核 4 线
  • 由于成本持续增加,笔记本产品价格预计将明显上涨

    根据知情人士透露,由于材料、物流等成本持续增加,笔记本产品价格预计将在2021年下半年有明显上涨。进入6月下旬以来,全球半导体芯片缺货情况加剧,显卡、处理器
Top