一、提升qps的方式
- 提升并发数
- 能用多线程就用多线程
- 增加各种链接数:(tomcat、mysql、redis)等等
- 服务无状态,便于横向扩展、(比如扩机器)
- 让服务能力对等。(比如负载均衡,保证每个服务的请求数量都是一样的。)
- 减少响应时间
- 优化查询语句
- 该使用缓存就加缓存
二、秒杀场景优化
秒杀要保证
- 准:不多卖,不少卖,
- 快:服务响应速度要快。
- 稳:服务的高可用
2.1、动静分离
我们在进行抢一个商品的时候,我们的商品详情页是不是有商品的名称什么的。
我们可以把商品的静态信息,放到缓存里面,商品的价格等等,我们去查询数据库。
能不查询db,就尽量不去查询db
2.2、锁的优化
秒杀场景我们一般是通过去加锁的方式来控制不多卖。
假如我们现在要卖100个电脑
2.2.1 传统的加锁场景
如果这样的话,我们就可能会导致少卖,比如一下来了1000个请求,去抢这100台电脑,就会导致在某一瞬间,用户不抢了&