问题描述
首先,这个问题是针对Java8的。
话虽如此,让我们着手解决这个问题。
- 我必须使用不同的参数进行2000次http调用。以下是网址 https://stat.ripe.net/data/looking-glass/data.json?resource=IP-PREFIX
- API限制了最多8个并发调用。
- 我需要稍后处理每个HTTP调用的响应。
我是java的新手,似乎有很多不同的方法可以实现此目的。但是,我不确定哪一个是正确的。另外,并发调用的限制也使我难以解决。
有人可以指出我需要学习的Java主题吗?
感谢您的宝贵时间。非常感谢您的帮助。
解决方法
在我的头顶上
- Apache HttpClient
- Spring-Boot @ Async,threadPoolTaskExecutor限制为maxPoolSize = 8
应该这样做。
已编辑 如果不想使用Spring,则可以仅将ForkJoinPool与Stream一起使用。签出-> https://www.baeldung.com/java-8-parallel-streams-custom-threadpool
, IMO,如果您的项目是使用Spring框架开发的,那么我建议您选择WebFlux
。它是一种reactive programming方法RxJava的实现。文档链接为here。它包括一个支持无阻塞的HTTP客户端,称为WebClient
,可用于进行HTTP调用。
否则,CompletableFuture
和ExecutorService
具有根据您的API并发性定制的线程池配置。这将是个不错的选择。