Java 使用IP流向它们发送http post请求

Java 使用IP流向它们发送http post请求,java,parallel-processing,java-stream,httprequest,java.util.concurrent,Java,Parallel Processing,Java Stream,Httprequest,Java.util.concurrent,我正在从事一个Java项目,该项目有一个消费者列表实例(每个消费者都有IP(字符串)和首选项(自定义对象))。 我正在收听来自Tweeer的事件,每次我从Tweeer获得更新时,我都希望通过HTTP post请求将其发送给具有适当偏好的消费者 我想用平行流来做 personList.parallelStream() .filter(...) .map(person -> sendHTTP(person.getIp())) 将列表实例转换为CopyOnWriteArrayList是否有帮助

我正在从事一个Java项目,该项目有一个消费者列表实例(每个消费者都有IP(字符串)和首选项(自定义对象))。 我正在收听来自Tweeer的事件,每次我从Tweeer获得更新时,我都希望通过HTTP post请求将其发送给具有适当偏好的消费者

我想用平行流来做

personList.parallelStream()
.filter(...)
.map(person -> sendHTTP(person.getIp()))
将列表实例转换为CopyOnWriteArrayList是否有帮助

personConcurrent.parallelStream()
.filter(...)
.map(person -> sendHTTP(person.getIp()))
对于许多HTTP post请求,要获得最佳性能,最好的方法是什么


提前感谢:)

不在流本身中执行请求是正确的方法。在这种情况下,根本不使用流可能更好。只需在
ExecutorService
ThreadPoolExecutor
或。。。正如luk2302所说,
parallelStream()
在内部使用ForAndJoin池机制不是一个好的做法。还有比这更好的,例如
newFixedThreadPool
为IO操作提供了更好的性能。在您的情况下,收集IP并创建ExecutorService,然后并行执行它。不在流本身中执行请求是正确的方法。在这种情况下,根本不使用流可能更好。只需在
ExecutorService
ThreadPoolExecutor
或。。。正如luk2302所说,
parallelStream()
在内部使用ForAndJoin池机制不是一个好的做法。还有比这更好的,例如
newFixedThreadPool
为IO操作提供了更好的性能。在您的情况下,收集IP并创建ExecutorService,然后并行执行它。