如何解决Java8并行HTTP调用
首先,这个问题是针对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并发性定制的线程池配置。这将是个不错的选择。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。