Как я могу использовать постоянные соединения HTTP 1.1 и конвейеризацию из Java или netty? - PullRequest
0 голосов
/ 07 января 2019

Как Как я могу использовать постоянные соединения HTTP 1.1 и конвейерную передачу из PHP?

Я строю REST API (используя JSON в качестве кодировки данных). Все вызовы API будут HTTP POST, и мне нужно иметь возможность обрабатывать значительные объемы (потенциально 1000 вызовов в секунду или более).

Сервер (за который я отвечаю) будет реализован весной при загрузке 2.0.x, tomcat, клиент будет в netty.

В связи с высокой частотой запросов я заинтересован в использовании конвейерной обработки запросов в HTTP 1.1, но не уверен, возможно ли это сделать из netty.

Я пробовал это с netty, клиент немедленно пишет AndFlush, но мое приложение Springboot использует его в последовательностях

Пример кода

    ExecutorService executorService = Executors.newFixedThreadPool(10);
    for (int i = 0; i < count; i++) {
        executorService.execute(()->{
            HttpRequest request1 = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.POST, "/");
            request1.headers().set("host", ip);
            request1.headers().set("connection","keep-alive");
            request1.headers().set("Content-Type" ,"application/json");
            request1.headers().set("Content-Length" ,0);
            channel.writeAndFlush(request1);
            System.out.println("request success");
        });
    }
    try {
        Thread.sleep(count * 1000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

Может ли кто-нибудь дать совет, как это сделать?

...