010--【秒杀】超卖解决方案

1、写作背景

在进行秒杀(即使不是秒杀),在高并发的购买情况下,会出现超卖现象,这个应该是完全不应该的,现在就进行避免

2、解决方案

  • 1)使用数据库乐观锁,压力会转到mysql上
UPDATE T_SEC_GOODS SET NUM=NUM-#{num} WHERE SKU=#{sku} AND NUM-#{num}>0
  • 2)使用redis先在缓存中判断库存有没有,如果库存够,再进行mysql数据更新

1)先从redis中查询数据,
2)判断库存数量
3)进行数据库更新操作
4)进行redis更新操作(一定在最后)

  • 3)使用reids对频繁刷新的用户/IP 进行限制访问

1)每次访问的时候,对redis中的用户请求进行redis自增操作,如果太频繁就加入黑名单
2)操作的时候判断用户IP是否在很名单上

  • 4)使用guava进行后端的访问流量限制

  • 5)使用ActiveMQ进行削峰处理

  • 6)使用内存变量进行判断

为了减少redis的访问,使用内存值进行判断

3、设计流程图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值