在Zuul中設置服務訪問限流

  使用Zuul中的過濾器結合谷歌提供的工具類RateLimiter達到限流ide

在網關服務中建立一個過濾器,並添加到容器中工具

@Component
public class RateLimitFilter extends ZuulFilter {

    private static final RateLimiter RATE_LIMITER = RateLimiter.create(1);//設置每秒訪問的次數,這裏是每秒只能被訪問一次


    @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()){ //這裏咱們能夠直接拋出異常,提示友好信息給用戶 System.out.println("限流"); } return null; } }

這樣能夠經過網關實現簡單的限流操做ui

相關文章
相關標籤/搜索