【发布时间】:2020-10-17 23:05:43
【问题描述】:
我在 Spring 应用程序中使用 Web 客户端
我在做同样的事情时遇到了内存泄漏问题
我正在使用以下代码从服务获取非 2XX 响应的响应正文:
return client.get()
.uri(uriString)
.headers(ServiceCommonUtil.getHttpHeaderConsumer(headersMap))
.exchange()
.flatMap(clientResponse -> {
try {
clientResponse.body((clientHttpResponse, context) ->
clientHttpResponse.getBody());
logResponseStatus(clientResponse.statusCode(), serviceName);
return clientResponse.bodyToMono(String.class);
} catch (Exception e) {
return null;
}
})
以后订阅者使用 subscribe/ 错误块来处理这个响应。
responseMono.subscribe(response -> {
//process response string
},error->{
//process error response
});
我的问题是,如果我在 responseMono 上使用 dispose 方法,则处理需要很长时间,而没有它我将面临内存泄漏问题。 我在这里做错了吗?
【问题讨论】:
标签: spring-boot spring-webflux spring-webclient