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

标签 java spring webclient spring-webflux

我有 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/

相关文章:

java - 应用程序仅在 Tomcat 重启后工作

Spring AOP 与 @Transactional 注解

c# - 如何使用 HttpClient 根据个人请求设置 HttpHeader

java - 使用 Enum 的单例与使用双重检查锁定的单例

java - 关于正则表达式空白

java - 在 AWS 中更改 Spring Boot Web 应用程序的 application.properties

c# - webclient 响应与 IE 响应不同

c# - Async WebClient 不是真正的异步?

java - BaseAdapter 和 Picasso 问题

java - 如何使用 Maven 将类路径添加到 list 文件