特点:短时间内海量的请求,比如1秒5w请求(5wQPS)
大规模并发带来的挑战
- 请求接口的合理设计,动静态资源分离(CDN),负载均衡,分布式,使用内存数据库
- 快速反馈,合理设计,防止雪崩
- 重启和过载保护,拒绝超载的请求
防止作弊手段
- 一个账号多个请求,参与记录判断(只接受一个请求),使用Redis的watch乐观锁,或者使用队列实现
- 多个账号同个IP多个请求,使用验证码,禁止IP(容易误伤)
- 多个账号不同IP多个请求,数据挖掘清理僵尸号(有一些特点),提高活动门槛
- 火车票抢购,没有很好的解决方案,数据挖掘清理僵尸号
高并发下的数据安全——超发
- 使用悲观锁,但是性能低下
- 使用队列,容易爆队列
- 使用乐观锁,会增大CPU计算开销,但是是比较好的解决方案