@Value(value = "${rest.http.client.configuration.socketTimeOutInSec:180}")
private int socketTimeOutInSeconds;
- @Value(value = "${rest.http.client.configuration.socketTimeOutInSec:600}")
+ @Value(value = "${rest.http.client.configuration.timeToLiveInSeconds:600}")
private int timeToLiveInSeconds;
- @Value(value = "${rest.http.client.configuration.maxConnections:10}")
+ @Value(value = "${rest.http.client.configuration.maxConnections:100}")
private int maxConnections;
- @Value(value = "${rest.http.client.configuration.maxConnectionsPerRoute:2}")
+ @Value(value = "${rest.http.client.configuration.maxConnectionsPerRoute:20}")
private int maxConnectionsPerRoute;
+ @Value(value = "${rest.http.client.configuration.evictIdleConnectionsTimeInSec:5}")
+ private int evictIdleConnectionsTimeInSec;
+
/**
* @return the socket connection time out in milliseconds
*/
return (int) TimeUnit.SECONDS.toMinutes(timeToLiveInSeconds);
}
+ public long getEvictIdleConnectionsTimeInSec() {
+ return evictIdleConnectionsTimeInSec;
+ }
+
}
import java.util.concurrent.TimeUnit;
import org.apache.http.client.config.RequestConfig;
+import org.apache.http.impl.NoConnectionReuseStrategy;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
return HttpClientBuilder.create().setConnectionManager(poolingHttpClientConnectionManager())
.setMaxConnPerRoute(clientConnectionConfiguration.getMaxConnectionsPerRoute())
.setMaxConnTotal(clientConnectionConfiguration.getMaxConnections())
- .setDefaultRequestConfig(requestConfig()).build();
+ .setDefaultRequestConfig(requestConfig()).setConnectionReuseStrategy(NoConnectionReuseStrategy.INSTANCE)
+ .evictExpiredConnections().evictIdleConnections(
+ clientConnectionConfiguration.getEvictIdleConnectionsTimeInSec(), TimeUnit.SECONDS)
+ .build();
}
@Bean