[英]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.