用于商品数量比较少但是购买者数量特别多的情况下:
1、短时高并发,负载压力大
2、读多写少的场景
3、竞争资源有限不能多卖不能少卖不能重卖
乐观锁:读多写少(数据库乐观锁、缓冲乐观锁)[等待随机事件+重试机制(递归)+mysql version+mysql status]
悲观锁:写多读少(行锁、表锁、页锁、共享锁(读锁)、排它锁(写锁))
乐观锁只是在更新数据的那一刻 加锁,其他的时间不加锁,所以吞吐量更高
数据库并发能力:300~700
redis的乐观锁实现
1、压力尽量拦截在上游
2、能用缓冲的地方尽量用缓冲
3、热点隔离(热点业务隔离)
页面层:验证码
nginx+CDN
分层理念:
1、
流控:
令牌桶算法和漏桶算法:
令牌桶算法:控制平均流量,允许一定程度的突发流量
漏桶算法:强行控制输出流量