如何为Spring Cloud Gateway的HttpClient配置连接租赁策略(FIFO/LIFO)
Spring Cloud Gateway 修改 HttpClient 连接租赁策略为 LIFO 的方法
Spring Cloud Gateway 默认没有提供直接修改连接租赁策略的配置属性,要将默认的FIFO改为LIFO,需要通过自定义配置实现,具体步骤如下:
- 创建自定义配置类,通过
ConnectionProvider构建指定LIFO策略的连接池 - 将自定义连接池注入到Gateway的
HttpClient中,替换默认配置
示例代码如下:
import org.springframework.cloud.gateway.config.HttpClientCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import reactor.netty.http.client.HttpClient; import reactor.netty.resources.ConnectionProvider; import java.time.Duration; @Configuration public class GatewayHttpClientConfig { @Bean public HttpClientCustomizer httpClientCustomizer() { return httpClient -> { // 构建自定义连接池,启用LIFO租赁策略 ConnectionProvider customPool = ConnectionProvider.builder("gateway-custom-pool") .maxIdleTime(Duration.ofSeconds(15)) // 对应配置文件中的maxIdleTime .lifo() // 切换为LIFO租赁模式 .build(); return httpClient.runOn(customPool); }; } }
补充说明
- 自定义连接池时可以同步配置其他参数(如最大连接数、空闲超时等),和配置文件中的
spring.cloud.gateway.httpclient.pool下的属性对应 - 该配置会覆盖默认的连接池实现,但不会影响配置文件中设置的连接超时、响应超时等其他HttpClient属性
内容的提问来源于stack exchange,提问作者Salman
相关产品推荐
相关产品推荐

