【性能优化,打造亿级秒杀系统】- (七)流量削峰
目录 概述 一. 秒杀令牌 1.1 原理 1.2 代码实现 二. 秒杀大闸原理 2.1 原理 2.2 代码 三. 队列泄洪 原理 3.2 代码实现 四. 本地OR分布式 概述 上一章节使用了多级缓存+分布式事务管理,即便查询优化,交易优化技术用到极致后,只要外部的流量超过了系统可承载的范围就有拖垮系统的风险。本章通过秒杀令牌,秒杀大闸,队列泄洪等流量削峰技术解决全站的流量高性能运行效率。 项目缺陷: 秒杀接口会被脚本不断调用 秒杀验证逻辑与秒杀下单接口强关联 代码冗余度高 秒杀验证逻辑负责 对系统产生无关的负载 本章目标: 掌握秒杀令牌的原理和使用方式 掌握秒杀大闸的原理和使用方式 掌握队列泄洪的原理和使用方式 一. 秒杀令牌 1.1 原理 秒杀接口需要依靠令牌才能进入 ,对应的秒杀下单接口需要新增一个入参,表示对应前端用户获得传入的一个令牌,只有令牌处于合法之后,才能进入对应的秒杀下单的逻辑 秒杀令牌由秒杀活动模块负责生成 ,交易系统仅仅验证令牌的可靠性,以此来判断对应的秒杀接口是否可以被这次http的request进入 秒杀活动模块对秒杀令牌生成全权处理,逻辑收口 秒杀下单前需要获得秒杀令牌才能开始秒杀 我们生成秒杀令牌并且放到redis 中 在生成令牌的时候把一些基本的风控的能力都搬到这里,让 下单接口只管下单操作,不包含用户验证等 。 1.2 代码实现 * * *