SpringBoot实现接口限流设计

目录

Redis数据结构选择

代码实现


接口限流的主要目的在于提高系统的稳定性,使用Redis记录某时间段用户IP访问接口的次数,以key,value方式记录数据,key为IP加接口方法名,value的值为访问的次数。每次访问时判断value的值是否大于设定的次数,如果超过设定的访问次数,则返回相应提示信息。避免键过期的瞬间,出现限流不起作用的问题,采用滑动窗口的方式,即记录当前用户访问的时间点(时间戳),计算前10秒内用户访问该接口的总次数。如果总次数大于限流次数,则不允许用户访问该接口。

Redis数据结构选择

zSet有序集合

ZADD [key] [score] [member]

score,用户访问接口的时间戳。key,记录用户IP和接口方法名。member࿰

你可能感兴趣的:(系统架构设计,spring,boot,java,后端)