主要从下面几个方面进行优化:
- 限流:只有少部分用户能够秒杀成功,所以要限制大部分流量,只允许少部分流量进入服务器后端
- 削峰:对于秒杀系统瞬时会有大量用户涌入,所以在抢购一开始有很高的瞬间峰值,高峰值流量是压垮系统很重要的原因,所以如何把瞬间的高流量变成一段时间平稳的流量也是设计秒杀系统很重要的思路。实现削峰的常用方法有利于利用缓存和消息中间件等技术。
- 异步处理:秒杀系统是一个高并发系统,采用异步处理模式可以极大的提高系统并发量,其实异步处理就是削峰的一种实现方式。
- 内存缓存:秒杀系统最大的瓶颈一般都是数据库读写,由于数据库读写属于磁盘IO,性能很低,如果能把部分数据或业务逻辑转移到缓存,效率会极大地提升。
- 可拓展:当然如果我们想支持更多用户,更大的并发,最好就将系统设计成弹性可拓展的,如果流量来了,拓展机器就好了。像淘宝、京东等双十一活动时会增加大量机器应对交易高峰。