Регулирование в приложении vert.x - PullRequest
0 голосов
/ 30 августа 2018

У меня есть приложение vert.x, которое размещено на Cloud Foundry. Я должен реализовать условие регулирования, которое ограничивает запросы на основе свободной памяти, как это делает InterceptorHandler в Spring. Так есть ли способ перехватить HTTP-запросы к серверу до того, как запрос действительно достигнет памяти сервера?

1 Ответ

0 голосов
/ 31 августа 2018

Я полагаю, что ваша цель - как можно быстрее ускорить запрос, и это то, что вы имеете в виду, говоря "не достигнув памяти".

Для этой цели вы можете использовать простой глобальный обработчик, поскольку в 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();
       }
    });

Я также должен отметить, что Vert.x имеет постоянный объем памяти, в отличие от Spring, поскольку Vert.x использует ограниченное количество потоков. На это число не влияет количество входящих запросов. Так что я бы не советовал регулировать на основе памяти.

...