我正在使用BlockHound分析我的反应器应用程序。我的ExchangeFunction上有过滤器
@Override
public Mono<ClientResponse> filter(ClientRequest request, ExchangeFunction next) {
final ClientRequest.Builder builder = ClientRequest.from(request);
return Mono.defer(() -> next.exchange(builder.build())) //detects blocking call
.transform(reactiveUtil::contextualize)
.publishOn(Schedulers.parallel());
}BlockHound在next.exchange()上检测到阻塞调用。现在既然我在Netty中使用WebClient,为什么这个调用是非阻塞的呢?在elastic线程上订阅它不会有任何帮助。
发布于 2020-06-25 00:28:40
根据您的要点,BlockHound检测到java.io.FileInputStream.readBytes(..)在SSL握手中处于阻塞状态。
此问题已在https://github.com/reactor/reactor-netty/issues/939中报告,并似乎在最新版本中得到解决。
https://stackoverflow.com/questions/62533101
复制相似问题