1 秒杀场景
商品秒杀,抢红包,抽奖等
2 技术特点
读多写少,高并发,资源冲突(短时间内突发性高并发请求)
3 应对策略
读多写少
- 缓存:把热点数据丢到缓存中,浏览器缓存,本地缓存等
高并发
- 限流:延迟处理策略,拒绝访问
- 负载均衡:使用nginx实现反向代理和负载均衡
- 缓存:使用redis,memcache等,减轻服务器和数据库压力
- 异步:将同步的并发请求转移为异步,提高响应速度
- 队列:rabbitMQ,activeMQ等,实现应用解耦,工作队列减轻服务器压力,提高响应速度
资源冲突
● 数据库锁
● 乐观锁:版本号机制,CAS操作
● 悲观锁:行锁,表锁,读锁,写锁,select * from tb_xx for update
● 分布式锁
● reids的setnx指令
● redis的RedLock算法
● zookeeper有序节点
● 其他原子操作
● incr
● decr