使用Redisson实现的一款放重放小工具
Github: limiter-spring-boot-starter
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface WebLimiter {
/**
* 后到达的请求默认处理策略
*
* @return
*/
AccessEnum access() default AccessEnum.DENY;
/**
* 用于判断相同请求的标识
*
* @return
*/
UniqueEnum unique() default UniqueEnum.METHOD_PARAM;
/**
* response处理器
*
* @return
*/
Class<? extends IResponseHandler> handler() default DefaultResponseHandler.class;
/**
* 限制时长
*
* @return
*/
int expire() default 1;
/**
* 单位
*
* @return
*/
TimeUnit timeunit() default TimeUnit.SECONDS;
}
使用方式
limiter-spring-boot-starter
使用springboot和redisson实现的web api放重放锁
处理模式
拒绝、排队
判断唯一请求标识
header、param
可自定义响应数据
使用方式
应用依赖redis
spring.redis.host = xxxx
spring.redis.port = xxx
spring.redis.password = xxx
spring.redis.database = 2
如果应用未配置redissonClient则会默认注入一个
- 引入stater
<dependency>
<groupId>cn.fire.limiter</groupId>
<artifactId>limiter-spring-boot-starter</artifactId>
</dependency>
- 在需要控制的控制器上加入注解,支持方法和类级别
@WebLimiter(expire = 2, timeunit = TimeUnit.SECONDS, handler = DefaultResponseHandler.class, unique = UniqueEnum.HEADER, access = AccessEnum.DENY)