美文网首页
010--【秒杀】超卖解决方案

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

作者: 糖纸疯了 | 来源:发表于2019-08-25 16:44 被阅读0次

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、设计流程图


相关文章

网友评论

      本文标题:010--【秒杀】超卖解决方案

      本文链接:https://www.haomeiwen.com/subject/jegqectx.html