在zuul 中基于RateLimter 限流

在开发中使用zuul 作为微服务的网关,并使用google 的RateLimter 实现限流功能。

@Component
public class RateLimitFilter extends ZuulFilter{

	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() {
		if (!RATE_LIMITER.tryAcquire()) {
			throw new RateLimitException();
		}

		return null;
	}
}

1.实现ZuulFilter 过滤器

2.设置限流数量

3.这个RateLimter 类是基于令牌桶算法实现限流的

你可能感兴趣的:(java,servlet,spring)