WebClient maxConnection池限制?

如果远程服务阻塞,我可以发送多少个并发请求?意思是:使用时spring内部使用的 maxConnection 池限制是WebClient多少?

@Autowired

private WebClient webClient;

webClient.post().uri(url).syncBody(req).retrieve().bodyToMono(type);

而且:如何修改它?

回答:

在Reactor-netty

0.9.0.M4版本之前,默认情况下没有限制,因为使用了“弹性”连接提供程序。此修复程序将其更改为“固定的”连接提供程序,限制为500。

要更改连接池限制,您可以定义自己的WebClient.Builderbean并使用它来创建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));

}

或者您可以org.springframework.boot.web.reactive.function.client.WebClientCustomizer使用预定义的方式以相同的方式实现自定义WebClient.Builder

以上是 WebClient maxConnection池限制? 的全部内容, 来源链接: utcz.com/qa/416071.html

回到顶部