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

时间:2019-12-05 06:39:25

标签: java spring webclient spring-webflux

我有2个微服务。第一个是简单的回声服务,延迟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);
}

1 个答案:

答案 0 :(得分:0)

感谢Mark,您的链接解决方案有效。

要么:

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();