zoukankan      html  css  js  c++  java
  • 秒杀系统如何设计

    近来听到关于秒杀的话题,想起N年前去某当面试,好像有类似设计题,觉得挺有意思,整理了下,供大家临时应急使用!

    秒杀场景:

    10W真实用户参与秒杀,仅有100人可以成功购买商品。

    考虑到码农的特殊手段,接口流量咱们按20W去算.

    思路如下:

    1、前端控制   

    技术控制,置灰按钮、防止重复提交   

    2、后端负载均衡、分散流量

    单机理论极限并发约6W,20W流量需要4台服务,去分散流量

    3、用户频率限制

    用户手脚不停的刷商品,在一段时间内,同一用户会有多次请求,可以用通过redis来过滤

    4、令牌策略

    可以令牌桶或MQ来过滤数据,拿到令牌的可以去购买,减轻DB压力

    5、数据库乐观锁

    满足条件的才可以成功购买商品

     

     

    版权声明:本文版权归作者java潇邦和博客园和CSDN共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    Leetcode 15
    setjmp和longjmp重复使用的问题
    linux的下两种定时器实现
    linux中的信号处理
    【推荐软件】ack
    《代码大全》阅读心得二
    更换svn diff为vimdiff
    unpack的一点使用问题
    【lua】table是否为空的判断
    vi复制部分字符
  • 原文地址:https://www.cnblogs.com/sunrisexq/p/8628305.html
Copyright © 2011-2022 走看看