如何使用Java或netty的HTTP 1.1持久连接和流水线?

时间:2019-01-07 08:07:04

标签: java http tomcat netty http-pipelining

How can I make use of HTTP 1.1 persistent connections and pipelining from PHP?

我正在构建REST API(使用JSON作为数据编码)。 API调用全部都是HTTP POST,并且我需要能够处理大量事务(每秒可能有1000次调用或更多)。

服务器(由我负责)将在spring boot 2.0.x中实现,tomcat,客户端将处于netty状态。

由于请求率很高,我热衷于利用HTTP 1.1中的请求管道,但是我不确定是否可以通过netty进行此操作。

我已经尝试过netty,客户端立即执行writeAndFlush,但是我的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();
    }

任何人都可以提供有关此操作的任何建议吗?

0 个答案:

没有答案