我有一个托管在 Cloud Foundry 上的 vert.x 应用程序。我必须实现一个限制条件,根据可用内存限制请求,就像 Spring 中的 InterceptorHandler 所做的那样。那么有没有办法在请求实际到达服务器内存之前拦截对服务器的 HTTP 请求?
最佳答案
我认为您的意图是尽快限制请求,这就是您所说的“未到达内存”的意思。
为此,您可以使用一个简单的全局处理程序,因为在 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 使用有限数量的线程。该数字不受传入请求量的影响。所以我不建议基于内存进行限制。
关于java - vert.x 应用程序的限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52092267/