1、缓存数据->缓存本地缓存中(localcache)->redis(此种方法使用,需要设置淘汰机制,推荐使用guava cache)。
2、秒杀缓存击穿增加zk分布式锁,避免缓存被击穿,也可以使用Redssion。
3、缓存前布隆过滤器、全量redis key 加在缓存前。
4、击穿(缓存大面积失效)、穿透(不存在的数据直查库)
5、秒杀高级做法是静态化页面,通过CDN进行分发。
6、秒杀接口动态获取,避免提前暴露。
7、Nas盘挂载。
8、悲观锁for update
9、乐观锁,版本号 cas ,设置库存不为负
10、超卖问题 库存case when …then…else…end
11、在redis里做预减库存,将判断前置。
12、本地缓存前置,减缓redis网络请求。
13、redis发布与订阅模式,通知是否售罄
14、异步下单,MQ同步库存
15、服务和前端状态同步方式:websocket或者轮询
16、生成主键方法 雪花算法、leaf(全局唯一生成中间件)、百度uuid
17、MQ分布式事务。
18、防刷策略(验证码、接口地址动态化)
19、时序图流程(待)
20、网易验证码安全dun.163.com(收费)
21、数据一致性维护服务工具(canal,data bus)
22、canal去订阅mysql的binlog发到MQ,需要同步的去订阅MQ,去做同步。用途可以用它去更新缓存,与数据库保持同步。
关于秒杀高并发的总结
最新推荐文章于 2024-05-16 09:23:57 发布