java.net.http客户端超时&;连接管理/地址解析

java.net.http客户端超时&;连接管理/地址解析,java,spring-boot,java-http-client,Java,Spring Boot,Java Http Client,我们通过以下方式在Spring Boot中定义了HTTPClient bean: @Configuration public class HttpClientConfig { @Bean HttpClient httpClient() { return HttpClient.newBuilder() .followRedirects(HttpClient.Redirect.ALWAYS) .connectTimeout(

我们通过以下方式在Spring Boot中定义了HTTPClient bean:

@Configuration
public class HttpClientConfig {


    @Bean
    HttpClient httpClient() {
        return HttpClient.newBuilder()
          .followRedirects(HttpClient.Redirect.ALWAYS)
          .connectTimeout(Duration.ofSeconds(10))
          .build();
     }
}
我们收到了间歇性超时,无论是请求还是连接本身

我们已经对网络活动进行了故障排除,并意识到我们正在联系的服务器作为一个动态ip范围,有效地更改了我们正在联系的特定主机名的地址

使用http客户端的单个实例是否会导致此类问题的发生?自定义执行器是否有助于此场景


在线上没有太多关于连接池或管理连接的信息(除非是针对apache httpclient)

为什么不看看实现呢?HTTP/1.1和HTTP/2的连接池有点不同-您在这里使用的是哪种协议?从描述中不清楚问题是客户端重用了空闲连接,服务器已经离开了,还是问题更严重,例如InetAddress缓存包含了过时的值。您可以尝试使用
-Dnetworkaddress.cache.ttl=
,为什么不看看实现呢?HTTP/1.1和HTTP/2的连接池有点不同-您在这里使用的是哪种协议?从描述中不清楚问题是客户端重用了空闲连接,服务器已经离开了,还是问题更严重,例如InetAddress缓存包含了过时的值。您可以尝试使用
-Dnetworkaddress.cache.ttl=