如何解决高并发问题(秒杀系统)

优化的方向:

  • 将请求尽量拦截在系统上游(不要让锁冲突落到数据库上去)
  • 充分利用缓存,大部分是读多写少的场景

常见秒杀架构

  1. 浏览器端 ,最上层,会执行到一些JS代码
  2. 站点层 ,这一层会访问后端数据,拼html页面返回给浏览器
  3. 服务层 ,向上游屏蔽底层数据细节,提供数据访问
  4. 数据层 ,最终的库存是存在这里的,mysql是一个典型(当然还有会缓存)

各层次优化细节

  • 客户端(浏览器层,APP层)

静态化页面(采用html,不用jsp),将页面缓存在用户的浏览器和CDN上
前端限流:
在用户点击按钮后,对按钮置灰处理,禁止用户重复提交请求;限制用户在X秒之内只能提交一次请求

  • 站点层
    如何防止程序员循环调用http接口,发送请求?
    系统一般都需要登录,对uid进行请求计数和去重。一个uid,x秒只准透过1个请求,剩余的请求用页面缓存,x秒内到达站点层的请求,均返回同一页面。
    但是程序发起请求怎么都比人工点击速度快,所以要避免这种情况的话,可以把URL动态化,通过MD5之类的

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值