Однако, кажется, что глобальная конфигурация не применяется. ps/pr/>
Press>
@Configuration
public class GlobalFeignConfiguration {
@Value("${spring.cloud.openfeign.client.config.default.maxTotalConnections}")
public int maxTotalConnections;
@Value("${spring.cloud.openfeign.client.config.default.defaultMaxPerRoute}")
public int defaultMaxPerRoute;
@Value("${spring.cloud.openfeign.client.config.default.validateAfterInactivity}")
public int validateAfterInactivity;
@Value("${spring.cloud.openfeign.client.config.default.keepAlive}")
public int keepAlive;
@Bean
public CloseableHttpClient httpClient() {
PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager();
connectionManager.setMaxTotal(maxTotalConnections);
connectionManager.setDefaultMaxPerRoute(defaultMaxPerRoute);
RequestConfig requestConfig = RequestConfig.custom()
.setConnectionRequestTimeout(1, TimeUnit.MILLISECONDS)
.setResponseTimeout(1, TimeUnit.MILLISECONDS)
.setConnectionKeepAlive(TimeValue.ofMilliseconds(keepAlive))
.build();
return HttpClients.custom()
.setDefaultRequestConfig(requestConfig)
.evictIdleConnections(TimeValue.ofMilliseconds(validateAfterInactivity))
.setKeepAliveStrategy((response, context) -> TimeValue.ofMilliseconds(keepAlive))
.evictExpiredConnections()
.setConnectionManager(connectionManager)
.build();
}
@Bean
@Primary
public Client feignClient(CloseableHttpClient httpClient) {
return new ApacheHttp5Client(httpClient);
}
}
Конфигурация по конкретной клиенту:
@FeignClient(name = "test-client", configuration = TestClientConfig.class, contextId = "test-client")
public interface ITestClientService {
// ...
}
Как я тестирую:
Я установил как ConnectionRequestTimeout, так и ответ на 1 мс для принудительного времени ожидания. Тем не менее, тайм-аут не происходит, что говорит о том, что пользовательский apachehttp5client не используется.spring.cloud.openfeign.client.config.test-client.connectTimeout=1
Это подтверждает, что конфигурация по умолчанию игнорируется:
Я также пытался:
- Добавление @enablefeignclients (defaultConfiguration = GlobalFeignConfiguration.class)
- {TestClientConfig.class, globalfeignConfiguration.class} В @feignclient
зависимости:
Подробнее здесь: https://stackoverflow.com/questions/797 ... ng-applied