秒杀活动的防刷限流技术
技术要点:* 掌握验证码生成与验证技术* 掌握限流原理与实现* 掌握防黄牛技术验证码实现:* 验证码插件或者工具类* 分布式验证放在redis中限流方案:* 令牌桶算法:定时器每秒往桶里放置N个令牌* 接口维度引入令牌桶算法* 集群限流:依赖redis或其他的中间件技术做统一计数器,往往或产生性能瓶颈* 单机限流:负载均衡的前提下单机平均限流效果更好限流实现:// 下单业务控制类private R
技术要点:
* 掌握验证码生成与验证技术
* 掌握限流原理与实现
* 掌握防黄牛技术
验证码实现:
* 验证码插件或者工具类
* 分布式验证放在redis中
限流方案:
* 令牌桶算法:定时器每秒往桶里放置N个令牌
* 接口维度引入令牌桶算法
* 集群限流:依赖redis或其他的中间件技术做统一计数器,往往或产生性能瓶颈
* 单机限流:负载均衡的前提下单机平均限流效果更好
限流实现:
// 下单业务控制类
private RateLimiter orderCreateRateLimiter;
@PostConstruct
public void init(){
//executorService = Executors.newFixedThreadPool(20); //创建20线程的线程池
orderCreateRateLimiter = RateLimiter .create(300);
}
//以下为下单方法里面代码开始部分添加
if(!orderCreateRateLimiter .tryAcquire()){
//返回活动太火爆稍后再试
}
黄牛防刷 - 设备指纹:
* 采集中断设备各项参数,启动应用时生成唯一设备指纹
* 根据对应设备指纹的参数猜测出模拟器等可疑设备概率
黄牛防刷 - 凭证系统:
* 根据设备指纹下发凭证
* 关键业务链路上带上凭证并由业务系统到凭证服务器上验证
* 凭证服务器根据对应凭证所等价的设备指纹参数并根据实时行为风控系统判定对应凭证的可疑度分数
* 若分数低于某个数值则由业务系统返回固定错误码,拉起前端验证码验身,验身成功后加入凭证服务器对应分数
过载保护设计:
* 总请求量300万次 ---> 加上熔断措施
* 瞬时并发100万QPS ---> 把令牌桶限流上限稍微调低
* 秒杀系统自身承载能力50万QPS ---> 选择既稳定又快速的限流方法,比如令牌桶限流算法
* 下游Redis承载能力10万QPS ---> 采用漏桶限流来控制Redis的请求

网易易盾是国内领先的数字内容风控服务商,依托网易二十余年的先进技术和一线实践经验沉淀,为客户提供专业可靠的安全服务,涵盖内容安全、业务安全、应用安全、安全专家服务四大领域,全方位保障客户业务合规、稳健和安全运营。
更多推荐



所有评论(0)