怎么解决高并发的后台秒杀问题

秒杀一般是电商或者网上一些活动的场景,这种秒杀一般存在着后台拥挤,服务器承受不了大量的客户端导致奔溃是经常的事情,我们今天来介绍一下解决高并发的后台秒杀问题。

操作方法

  • 01

    我们遇到的秒杀一般是在电商网站举行一些活动或者节假日在12306网站上抢票时遇到,这些都给我们带来了很多的苦恼,而对于电商网站中一些稀缺或者特价商品,电商网站一般会在约定时间点对其进行限量销售,因为这些商品的特殊性,会吸引大量用户前来抢购,并且会在约定的时间点同时在秒杀页面进行抢购。因为狼多肉少的原因,导致服务器拥挤,大量的客户无功而返。

  • 02

    解决这个一般有五步,第一步限流: 鉴于只有少部分用户能够秒杀成功,所以要限制大部分流量,只允许少部分流量进入服务后端。

  • 03

    第二步削峰:对于秒杀系统瞬时会有大量用户涌入,以外卖为例,大量的外卖会在中午产生,商家推出满减活动更是火热。所以在抢购一开始会有很高的瞬间峰值。高峰值流量是压垮系统很重要的原因,所以如何把瞬间的高流量变成一段时间平稳的流量也是设计秒杀系统很重要的思路。实现削峰的常用的方法有利用缓存和消息中间件等技术。

  • 04

    第三步异步处理:秒杀系统是一个高并发系统,采用异步处理模式可以极大地提高系统并发量,其实异步处理就是削峰的一种实现方式。

  • 05

    第四步内存缓存:秒杀系统最大的瓶颈一般都是数据库读写,由于数据库读写属于磁盘IO,性能很低,如果能够把部分数据或业务逻辑转移到内存缓存,效率会有极大地提升。充分利用缓存,利用缓存可极大提高系统读写速度。

  • 06

    最后一步可拓展:当然如果我们想支持更多用户,更大的并发,最好就将系统设计成弹性可拓展的,如果流量来了,拓展机器就好了。像淘宝、京东等双十一活动时会增加大量机器应对交易高峰。消息队列可以削峰,将拦截大量并发请求,这也是一个异步处理过程,后台业务根据自己的处理能力,从消息队列中主动的拉取请求消息进行业务处理。

  • 07

    可以采用Redis 最简单的key-value数据结构,用一个原子类型的变量值(AtomicInteger)作为key,把用户id作为value,库存数量便是原子变量的最大值。对于每个用户的秒杀,我们使用 RPUSH key value插入秒杀请求, 当插入的秒杀请求数达到上限时,停止所有后续插入。然后我们可以在台启动多个工作线程,使用 LPOP key 读取秒杀成功者的用户id,然后再操作数据库做最终的下订单减库存操作。

(0)

相关推荐

  • 高并发量网站解决方案

    操作方法 01 一个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构.性能的要求都很简单.随着互联网业务的不断丰富,网 ...

  • java如何处理高并发

    对于一些大型网站,比如门户网站,在面对大量用户访问.高并发请求方面,基本的解决方案集中在这样几个环节:使用高性能的服务器.高性能的数据库.高效率的编程语言.还有高性能的Web容器.这几个解决思路在一定 ...

  • 怎么解决高版本CAD软件内在画图过程中出现的卡顿问题

    当我们在使用电脑的时候,如果需要绘制工程图的话,一般会用到电脑中的CAD软件,那么如果使用高版本的CAD软件时,出现应用卡顿的话,应如何解决该问题呢?接下来就由小编来告诉大家.具体如下:1. 第一步, ...

  • Vivo手机如何禁止高耗电应用后台运行

    现在很多人在使用Vivo手机,有些用户为了增加续航时间,想知道如何禁止高耗电应用后台运行,接下来小编就给大家介绍一下具体的操作步骤.具体如下:1. 首先第一步打开手机中的[i管家]App.2. 第二步 ...

  • 微信后台收不到消息(网络问题/设置问题)的解决方法

    微信可以说在近来已经相当火爆了,腾讯对于微信团队的认可从中可见一斑。今天我们要为大家分享的是微信后台收不到消息的解决办法,这是近期有朋友问到小编的一个问题,以下一起来看看如何解决。 微信后台收不到消息 ...

  • Win10高分屏高DPI字体模糊怎么办 Win10字体模糊发虚的解决方法

    如果你正在使用 3K 或 4K 高分屏,很可能遇到 Windows 10 字体字体模糊发虚的问题.如果你也遇到类似的情况,长时间对着这样显示字体的屏幕,一定会让你感觉眼睛疲劳,看东西发花.那么,为什么 ...

  • 织梦Dede后台验证码不显示解决方法

    操作方法 01 织梦Dede后台验证码不显示解决方法,很多时候dedecms网站后台的验证码不显示,验证码不显示网站后台就没法登陆,常见的验证码后台不显示的情况有以下三种: Dede后台验证码不显示情 ...

  • SQL Server中事务和并发详解

    A、Transaction(事务)是什么: 事物是SQL Server中的基本工作单元。通常它由几个读取和更新数据库的SQL命令组成,但是这些操作都不被看为最终的,直到发出一个COMMIT命令为止。 ...

  • 无法访问D-link路由的特殊情况的解决方法

    一、有时我们会发现无线局域网经常发生IP地址冲突现象,经过仔细检查,发现局域网中除了有一台专用的DHCP服务器为电脑分配地址外,无线路由器中自带的DHCP服务也在抢着为电脑分配IP地址,这样一来电脑的 ...