java.net.http客户端超时&;连接管理/地址解析
我们通过以下方式在Spring Boot中定义了HTTPClient bean: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(
@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=