WebClient maxConnection 池限制?
WebClient maxConnection pool limit?
如果远程服务阻塞,我可以发送多少个并发请求?
意思是:spring 在使用 WebClient
时内部使用的 maxConnection 池限制是多少?
@Autowired
private WebClient webClient;
webClient.post().uri(url).syncBody(req).retrieve().bodyToMono(type);
此外:我该如何修改它?
摘自网络documentation
By default, the TCP client uses a “fixed” connection pool with 500 as
the maximum number of the channels and 45s as the acquisition timeout.
在 reactor-netty 0.9.0.M4 版本之前默认没有限制,因为使用了 "elastic" 连接提供程序。 This fix 将其更改为 "fixed" 连接提供商,限制为 500。
要更改连接池限制,您可以定义自己的 WebClient.Builder
bean 并使用它来创建 WebClient
@Bean
public WebClient.Builder webClientBuilder() {
String connectionProviderName = "myConnectionProvider";
int maxConnections = 100;
int acquireTimeout = 1000;
HttpClient httpClient = HttpClient.create(ConnectionProvider
.fixed(connectionProviderName, maxConnections, acquireTimeout));
return WebClient.builder()
.clientConnector(new ReactorClientHttpConnector(httpClient));
}
或者您可以使用与预定义 WebClient.Builder
相同的方式实施自定义 org.springframework.boot.web.reactive.function.client.WebClientCustomizer
如果远程服务阻塞,我可以发送多少个并发请求?
意思是:spring 在使用 WebClient
时内部使用的 maxConnection 池限制是多少?
@Autowired
private WebClient webClient;
webClient.post().uri(url).syncBody(req).retrieve().bodyToMono(type);
此外:我该如何修改它?
摘自网络documentation
By default, the TCP client uses a “fixed” connection pool with 500 as the maximum number of the channels and 45s as the acquisition timeout.
在 reactor-netty 0.9.0.M4 版本之前默认没有限制,因为使用了 "elastic" 连接提供程序。 This fix 将其更改为 "fixed" 连接提供商,限制为 500。
要更改连接池限制,您可以定义自己的 WebClient.Builder
bean 并使用它来创建 WebClient
@Bean
public WebClient.Builder webClientBuilder() {
String connectionProviderName = "myConnectionProvider";
int maxConnections = 100;
int acquireTimeout = 1000;
HttpClient httpClient = HttpClient.create(ConnectionProvider
.fixed(connectionProviderName, maxConnections, acquireTimeout));
return WebClient.builder()
.clientConnector(new ReactorClientHttpConnector(httpClient));
}
或者您可以使用与预定义 WebClient.Builder
org.springframework.boot.web.reactive.function.client.WebClientCustomizer