繁体   English   中英

如何增加 Spring WebClient 并发请求限制?

[英]How to increase Spring WebClient concurrent requests limit?

我有 2 个微服务。 第一个是简单的 echo 服务,它在 3 秒延迟后返回。 第二个首先通过 spring webclient 调用。 当我模拟501个并发用户请求第二个微服务时,前500个用户在3秒内得到响应,最后一个在6秒内得到响应。 表示 spring webclient 默认只支持 500 个并发连接。 对应的值在apache客户端是可以配置的。 但是我找不到如何在spring webclient中配置它。 与 WebSocket 的情况类似,它仅支持 256 个并发连接。 如何配置它?

测试是用 jMeter 完成的。 如果我直接测试第一个微服务 - 没有限制。

public TestController(WebClient.Builder webClientBuilder) {
    this.webClient = webClientBuilder.baseUrl("http://localhost:8081").build();
}

@GetMapping("/test1")
public Mono<String> test1() {
    return webClient
            .get().uri("/test/HTTP")
            .retrieve().bodyToMono(String.class);
}

谢谢马克,您链接的解决方案有效。

要么这样:

HttpClient httpClient = HttpClient.create(ConnectionProvider
        .elastic("myConnectionProvider"));
this.webClient = webClientBuilder.clientConnector(new ReactorClientHttpConnector(httpClient))
        .baseUrl("http://localhost:8081").build();

或者那个:

HttpClient httpClient = HttpClient.create(ConnectionProvider
        .fixed("myConnectionProvider", 1000));
this.webClient = webClientBuilder.clientConnector(new ReactorClientHttpConnector(httpClient))
        .baseUrl("http://localhost:8081").build();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM