1. 背景
最近在设计一个秒杀系统,针对遇到的一些问题写了些体会
2. 关注点
秒杀系统
1)高并发的问题 : 短时间内,大量用户访问
2)高可用问题:如何保障秒杀系统不会挂掉
3)库存问题: 如何保障不会超库存
3. 解决
3.1 高并发问题
1) 运营预估流量峰值和均值
2) 单节点流量压测+ 预估实例数量
3)后端采用redis看流量,而不是数据库抗
4) 避免不必要的流量,比如前端浏览器设置5s请求一次
5) nginx流量限制
6) 后端流量限制
3.2 高可用问题
1) 水平扩展,多个无状态实例同时运行
2) hystrix熔断限流
3) 防刷机制 (ip黑名单,clientId黑名单)
3.3 库存问题
1) redis队列预制库存大小
2) 数据库兜底