多级缓存
- CDN资源
- nginx lvs和shared dict模块,提前将缓存数据放到nginx的shared模块.
上限大概几百m的样子 - nginx中的缓存会有失效时间,失效后从jvm本地缓存直接读取,
本地也没有的时候才从redis中读取(少网络IO).
tps压力过大方案
- 加服务器
- 验证码错峰值
- 秒杀单独的做成一张表
- redis做预扣,扣完直接返回,不用有后续磁盘或者网络 IO的开销.
- 抢购完毕后
zk通知nginx做标志位刷新,zk watch机制刷新jvm本地缓存标志。
避免后续的无效请求. - 下单后用RocketMQ削峰,订单系统再慢慢完成下单操作.
支付超时则取消该订单.
总结
缓存离用户越近越好
顺序 cdn,nginx,redis lua,jvm层面
- 上游拦请求 nginx层面高效识别jwt令牌
- 多级缓存保护DB
- 中间件削峰
- websocket通知用户下单成功消息
- 冷热请求数据分离.
- ES Redis MySql 数据同步
网友评论