Guava limiting

mysql maximum connections is limited

Google limiting framework Guava

 

 

/ ** 
 * line flow restrictor 
 * / 
public  class OrderRateLimiterFilter the extends ZuulFilter { 

    // generate second tokens 1000 
    Private  static  Final RateLimiter RATE_LIMITER = RateLimiter.create (1000 ) 
    @Override 
    public String filterType () { // pre-restrictor 
        return PRE_TYPE; 
    } 

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

    @Override 
    public  Boolean shouldFilter () { 
        the requestContext requestContext =RequestContext.getCurrentContext (); 
        the HttpServletRequest Request = requestContext.getRequest ();
         // only limiting line interfaces 
        IF ( "/apizuul/order/api/v1/order/save".equalsIgnoreCase(request.getRequestURI ())) { // intercept 
            return  to true ; 
        } 
        return  to false ; 
    } 

    @Override 
    public Object RUN () throws ZuulException { 

        the requestContext requestContext = RequestContext.getCurrentContext ();
         IF (! RATE_LIMITER.tryAcquire ()) { // do not get token
            requestContext.setSendZuulResponse ( to false ); // not executed down 
            requestContext.setResponseStatusCode (HttpStatus.TOO_MANY_REQUESTS.value ()); 
        } 
        return  null ; 
    }

 

Guess you like

Origin www.cnblogs.com/zhuomuniao/p/12453041.html