秒杀、抢购解决方案

##实现结构 恶意请求过滤-->限流-->redis消息队列执行占位操作,获得下单token-->用户传入token下单 。

##请求过滤

  1. 入口只有活动开启前才能获得
  2. 入口恶意用户检测:多秒内多少次请求---可以记录最近10次请求时间,和前第九次请求时间对比

##实时限流器

  1. 实时限流:限制正在处理的请求量(通过消息队列获取正在处理的请求数目)为库存的100倍请求(这个可自定义);
  2. 如果出现了限流器满了,但仍然有库存的情况怎么办?直接拒绝请求,允许用户重新提交请求 ##请求减库存
  3. 请求通过了过滤之后,交给消息队列减库存+下单 ##消息队列处理
  4. 消息队列再次过滤请求是否是恶意的用户
  5. 否则,执行减库存+下单

##各个方案

###1. redis+消息队列+更新数据库(秒杀和下单操作分离)

  • a.用户请求过来,将请求入消息队列;

  • b.消息处理,先减redis库存量,如果减库存成功,则生成下单token存入redis(设定有效期,比如2分钟之内下单有效),等待用户下单(这样就避免下单也面对大量并发);如果减库存失败,则消息记录回到消息队列中,等待再次处理;

  • c.用户下单:判断token是否失效(比对时间)了,如果未失效则扣减库存(也可能扣减库存失败),生成订单;如果已经失效了,则redis库存增加1; 如何确保下单token过期了释放资格?JOB 每分钟扫token缓存,如果失效了的则清除调,并回馈redis缓存(redis库存+1);

  • d、前端用户如何获知抢购成功了(获得了下单资格):ajax轮训查询接口。 说明:为什么要采用轮询而不是用实时的websocket推送?经测试,一台tomcat最多能连接3000个websocket,如果类似抢购的大量用户抢购,机器肯定是扛不住这么多长连接的,而查询用户是否抢购成功也只是查询的redis,因此采用轮询是很好的选择。

  • e、为什么要秒杀和下单操作分离?一方面,秒杀接口可以阻挡大部分并发流程,从而让下单操作错开并发高峰;另一方面,可以让秒杀操作和下单操作从业务上相分离,使得秒杀操作可以独立于订单相关业务。

###2. 防刷过滤器+redis+消息队列+更新数据库 针对第2方案中可能出现被辅助软件而已刷单的现象,可以增加过滤器:如果用户在指定时间内请求多少次,则认为是恶意用户,可以直接将该用户加入黑名单,并在后续的消息队列处理中不给黑名单的用户分配资格。

 

 

 

转载于:https://www.cnblogs.com/-mrl/p/10708987.html

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
众划算抢购软件是一款专业的用于众划算导购平台商品的抢购的网购辅助工具。软件功能齐全,可以实现枚举抢购或是自定义抢购,用户可以根据自己的喜好选择选项进行选购。软件界面美观简洁、简单全面、实用方便,无需培训,即可快速上手,轻轻松松完成抢购功能,真正做到简单全面实用。是用户实现抢购的好帮手。 众划算抢购软件 v5.2更新日志 1、对众划算抢购网页的更新。 2、对网购价和活动价价格的更新。 众划算抢购软件的安装   把下载好的安装包解压到当前文件夹,之后双击众划算抢购软件_5.0.exe运行文件进行安装,打开的时候会出现安装框,依次开始安装,依照步骤点击下一步,并选择同意协议和软件安装位置即可。     点击完成按钮,众划算抢购软件的安装过程就完成了。 众划算抢购软件的使用   安装完成后,点击众划算抢购软件快捷方式即可进入众划算抢购软件。如图所示,这是软件的主界面,用户可以点击界面上的按钮实现各种抢购功能。     如图所示,点击使用介绍按钮,出现使用介绍的对话框,用户可以学习软件的使用方式,需要注意的是如果用户只是试用版那只能使用枚举抢购的功能,这就需要用户自己去考虑自己的实际情况了。     如图所示,点击功能设置按钮,出现功能设置的对话框,用户可以在这里进行一些简单设置,软件的大概功能及使用方法就为大家介绍到这了,其他的详细内容就有小伙伴们自己去发现吧。 众划算抢购软件的卸载   依次选择开始-> 所有程序 ->众划算抢购软件 ->卸载众划算抢购软件。 或者依次打开我的电脑->卸载或更改程序->卸载你所卸载的软件,您可以用 Window XP控制面板中的添加或删除程序功能,或用 Windows Vista、Windows 7中的程序和功能删除众划算抢购软件, 然后点击开始卸载,按步骤依次点击下一步,直至完成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值