我已经使用Spring Boot 2.x和反应式Webclient开发了一项服务。 由于某些业务需求,我不得不阻止webClient调用。 在性能测试期间,我发现CPU使用率超过100%,并且应用程序崩溃了,非常感谢您为解决此问题提供的支持。
我尝试排除Netty依赖并尝试使用Jetty,但这并没有帮助我。最终,我使用Netty的httpClient和webclient的基本配置如下。
HttpClient httpClient = HttpClient.create()
.tcpConfiguration(tcpClient -> tcpClient.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, connectionTimeout)
.doOnConnected(connection -> connection.addHandlerLast(new ReadTimeoutHandler(readTimeout, TimeUnit.MILLISECONDS))).proxy(proxy -> proxy.type(ProxyProvider.Proxy.HTTP).host(proxyHost).port(proxyPort)));
ReactorClientHttpConnector connector = new ReactorClientHttpConnector(httpClient);
WebClient webClient = WebClient.builder().clientConnector(connector).build()