秒杀系统设计思路

系列文章目录

01-1 JVM-线程与内存区域



一、秒杀系统有哪些场景特点

  • 在秒杀时刻大量用户会在同一时间进行购买操作,网站的瞬时访问流量激增。
  • 秒杀往往是请求数量远远大于库存数量,只有少部分用户能秒杀成功。

二、设计理念及架构原则

1、设计理念

  • 限制大部分流量、只允许少量流量进入服务后端。
  • 将高峰值流量变成一段时间平稳的流量,常用缓存和消息中间件。
  • 采用异步处理模式可以极大地提升系统并发量。
  • 将部分数据或业务逻辑转移到内存缓存。
  • 拓展机器

2、架构原则

  • 数据尽量少
  • 请求数尽量少
  • 路径尽量短
  • 依赖尽量少
  • 不要有单点

三、设计思路及方案

1、设计思路

  • 将请求拦截在上游、降低下游压力。
  • 充分利用缓存。
  • 使用消息队列等中间件。

2、设计方案

2.1、前端

  • 页面静态化(CDN):将可以静态的元素静态化、尽量减少动态元素。
  • 禁止重复提交:提交后按钮置灰。
  • 用户限流:例如IP限流等

2.2、后端

  • 限制uid访问频率。
  • 采用消息队列缓存请求
  • 利用缓存应对读写请求

2.3、数据库

是最薄弱的一层、必须在上层将请求处理完全。

四、常用的方案落地

  • 秒杀界面CDN
  • 秒杀按钮优化
  • 秒杀链接优化
  • 秒杀验证码
  • 过滤请求
  • Redis缓存
  • 异步更新数据库
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值