如何加快处理多个HTTP请求的速度

时间:2015-09-24 02:13:35

标签: java multithreading http

我正在使用Java服务器,该服务器需要向另一台服务器发送多个HTTP get请求并处理响应并将其打包。目前,我使用synchronous方式执行此操作,如Java

for(Request request: requestList){
    Response response = client.send(request);
}

这样可行,但如果requestList的大小很大,则需要很长时间,因为它按顺序执行:发送请求,等待响应,然后再发送。

我想知道,有没有办法加快速度?我在想如果使用多个线程发送多个请求就可以了?或许不是,因为对于一定数量的请求,总响应时间是固定的。

任何想法或解释,为什么或为什么不起作用将会有所帮助。我正在使用Java

1 个答案:

答案 0 :(得分:1)

如果您使用Java 8,则可以尝试使用lambdas进行并行流。

requestList.parallelStream().forEach(....);

但是当请求相互依赖时,使用它们并不是一个好主意。此外,如果您的应用程序被多个用户使用,我不知道您的服务器将如何处理这么多请求。

其他解决方案是使用线程。但是你应该限制每个循环(用户)的线程数(线程池)。当然,这取决于你拥有多少资源。