猿问

WebClient maxConnection 池限制?

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

@Autowiredprivate WebClient webClient;

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

而且:我该如何修改它?


人到中年有点甜
浏览 218回答 2
2回答

aluckdog

在 reactor-netty 0.9.0.M4 版本之前默认没有限制,因为使用了“弹性”连接提供程序。此修复将其更改为限制为 500 的“固定”连接提供程序。要更改连接池限制,您可以定义自己的WebClient.Builderbean 并使用它来创建WebClient@Beanpublic 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

鸿蒙传说

取自 netty文档默认情况下,TCP 客户端使用“固定”连接池,最大通道数为 500,获取超时时间为 45s。
随时随地看视频慕课网APP

相关分类

Java
我要回答