Skip to the content.

walk-tools-limit 服务限流组件使用说明

总体介绍

limit组件用于对某个服务进行限流,并可通过指定key来设置基于某key的限流方式,组件使用注解@WRateLimiter声明一个服务使用

引入

  <dependency>
      <groupId>org.walkframework.boot</groupId>
      <artifactId>walk-starter-base</artifactId>
      <version>1.7.9</version>
  </dependency>
  <dependency>
      <groupId>org.walkframework.boot</groupId>
      <artifactId>walk-cache-starter</artifactId>
      <version>1.7.6</version>
  </dependency>

限流配置

组件默认使用@WRateLimiter注解中声明的配置达到限流目的,也可实现org.walkframework.boot.tools.limit.service.RateLimiterConfigLoader进行自定义配置信息

/**
 * 配置项,如果配置了,就从配置里取,如果未配置,则根据类名和方法名自动拼装
 */
String configItem() default "";

/**
 * <p>limit key,默认使用全部入参,可使用spel表达式配置key抽取规则如'args[0]['someKey']',可用上下文参见:org.walkframework.boot.tools.limit.bean.LimitContext</p>
 */
String key() default "";

/**
 * <p>自定义key generator获取limit key,实现org.walkframework.boot.tools.limit.service.LimiterKeyGenerator,此处配置该服务名</p>
 */
String keyGenerator() default "";

/**
 * <p>总流量,不按key统计</p>
 */
double totalRate() default 0D;

/**
 * <p>按key配置的流量</p>
 */
double keyRate() default 0D;

/**
 * <p>滑动窗口宽度,单位秒,默认1分钟</p>
 */
long slidingWindow() default 60;

限流后处理


<--分布式序列
回列表