在vert.x应用程序上进行节流

时间:2018-08-30 08:17:36

标签: java spring cloudfoundry vert.x

我有一个托管在Cloud Foundry上的vert.x应用程序。我必须以InterceptorHandler在Spring中执行的一种方式来实现限制条件,以限制基于空闲内存的请求。那么有没有办法在请求实际到达服务器内存之前拦截对服务器的HTTP请求?

1 个答案:

答案 0 :(得分:1)

我认为您的意图是尽快限制请求,这就是您“未到达内存”的意思。

为此,您可以使用一个简单的全局处理程序,因为在Vert.x中,每个处理程序都是某种拦截器。

    router.route().handler(ctx -> {
        // Probably you want to check some request properties
       if (isThrottled(ctx)) {
           ctx.response().setStatusCode(504).end();
       }
       else {
           // All is good, continue
           ctx.next();
       }
    });

不过,我还必须指出,与Spring不同,Vert.x具有恒定的内存占用量,因为Vert.x使用有限数量的线程。此数字不受传入请求数量的影响。因此,我不建议您根据内存进行节流。