/**
 * 限流
 */
@Component
public class RateLimiterFilter extends ZuulFilter {

    //1秒钟100个令牌
    private static  final RateLimiter RATE_LIMITER = RateLimiter.create(100);
    @Override
    public String filterType() {
        return PRE_TYPE;
    }

    @Override
    public int filterOrder() {
        return SERVLET_DETECTION_FILTER_ORDER -1;
    }

    @Override
    public boolean shouldFilter() {
        return true;
    }

    @Override
    public Object run() throws ZuulException {
        if(!RATE_LIMITER.tryAcquire()){
            throw new RateLimitException();
        }
        return null;
    }
}

  

相关文章:

  • 2021-10-07
  • 2021-11-27
  • 2022-12-23
  • 2021-05-22
  • 2021-09-27
  • 2021-12-26
  • 2021-09-09
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-07-20
  • 2021-10-24
  • 2021-06-05
  • 2022-12-23
  • 2022-12-23
  • 2021-07-28
相关资源
相似解决方案