秒杀系统优化

秒杀问题:

多人集中时间读写同一份库表,读写冲突,锁严重

优化思路

  • 将请求尽量拦截在系统前端
  • 利用缓存

优化细节

  • 客户端优化

    • 产品设计- 按钮点击后置灰,避免重复提交
    • JS- 限制用户在指定时间间隔提交请求次数
  • 站点优化(针对需要登录的页面)

    • 通一uid,限制访问频度,对uid进行控制和去重,防止程序员for循环调用
      比如x秒内透过一个请求,其他请求都用页面缓存,返回统一页面
  • 服务层优化

    • 对于写请求,使用请求队列,每次透有限个写请求到数据层,多少数据透多少请求,如果请求都成功,其余请求返回“已无资源等等”
    • 对于读请求,上cache
  • 业务规则优化

    • 分时分段等等...
    • 数据粒度优化,比如对余量查询,如果只关心有还是无,而不关心数量,则做粗颗粒度的“有、无”缓存即可。

你可能感兴趣的:(秒杀系统优化)