我有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);
}
答案 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();