为了账号安全,请及时绑定邮箱和手机立即绑定

WebClient maxConnection 池限制?

WebClient maxConnection 池限制?

人到中年有点甜 2023-06-21 13:36:37
如果远程服务阻塞,我可以发送多少个并发请求?意思是: spring在使用的时候内部使用的maxConnection pool limit是多少WebClient?@Autowiredprivate WebClient webClient; webClient.post().uri(url).syncBody(req).retrieve().bodyToMono(type);而且:我该如何修改它?
查看完整描述

2 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

在 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


查看完整回答
反对 回复 2023-06-21
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

取自 netty文档

默认情况下,TCP 客户端使用“固定”连接池,最大通道数为 500,获取超时时间为 45s。


查看完整回答
反对 回复 2023-06-21
  • 2 回答
  • 0 关注
  • 217 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信