一、介绍
场景:调用外部接口需要费用,防止接口被频繁调用等场景,需要进行限流
限流方式:
- 全局限流
- 根据ip限流
- 实例限流(集群多后端实例)
二、注解限流代码
2.1 切面处理逻辑
通过AOP方式,对注解标注方法进行限流。每一步代码作用都标上注释
redisUtils 工具类已经上传资源。
import cn.hutool.core.util.ArrayUtil;
import com.ruoyi.common.annotation.RateLimiter;
import com.ruoyi.common.constant.CacheConstants;
import com.ruoyi.common.enums.LimitType;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.MessageUtils;
import com.ruoyi.common.utils.ServletUtils;
import com.ruoyi.common.utils.StringUtils;