我有 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();
关于java - 如何增加Spring WebClient并发请求限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59189582/