Может ли кто-нибудь сказать мне, предоставляет ли клиент Spring Cloud Feign или поддерживает пул соединений Http, и если да, то как настроить такие параметры, как размер пула? Кажется, я не могу найти это в официальной документации. Спасибо.
Spring Cloud: Feign и пул соединений Http
Ответы (2)
Из расследования я попытаюсь ответить на свой вопрос:
Spring Cloud Feign использует Netflix Feign. Netflix Feign, в свою очередь, создает соединения, используя java.net.HttpURLConnection, который использует «постоянные соединения», но не пул соединений.
Клиент можно переопределить, например, используя вместо этого Apache HttpClient, и Netflix предоставляет для этого библиотеку (feign-httpclient). При использовании этого подхода размер пула соединений можно задать с помощью SystemProperties.
В Spring Cloud Brixton кажется, что если доступны Apache HttpClient или OkHttpClient (через @ConditionalOnClass), то они автоматически используются.
person
RobP
schedule
31.03.2016
Вы уверены, что Spring Cloud будет автоматически использовать Apache HttpClient, когда он находится в пути к классам?
- person Neo; 07.08.2016
Вам нужно добавить io.github.openfeign:feign-httpclient, а не просто http-клиент apache
- person Vladislav Kysliy; 04.12.2018
Это пример.
@Bean
public ServiceXFeignClient serviceXClient(Encoder encoder, Decoder decoder,
Contract contract, ClientProperties properties, ProxyProperties proxyProperties) {
OkHttpClient.Builder okHttpClient = new OkHttpClient.Builder()
.connectionPool(
new ConnectionPool(properties.getPoolConnectionMaxIdle(),
properties.getPoolConnectionKeepMinutesAlive(), TimeUnit.MINUTES))
.build();
return Feign.builder()
.client(new feign.okhttp.OkHttpClient(okHttpClient))
.encoder(encoder)
.decoder(decoder)
.contract(contract)
.target(ServiceXFeignClient.class, properties.getUrl());
}
person
SirJota
schedule
23.10.2020