提问人:Słowik 提问时间:10/24/2023 更新时间:10/24/2023 访问量:52
Spring Web Client - 如何忽略传入的响应?
Spring Web Client - how to ignore incoming responses?
问:
我的应用程序正在使用 Spring Web Client 发送多个请求(高达 3k/s)。下面是示例端点
ConnectionProvider connectionProvider = ConnectionProvider.builder("myConnectionPool")
.maxConnections(5000)
.pendingAcquireMaxCount(10000)
.build();
ReactorClientHttpConnector clientHttpConnector = new ReactorClientHttpConnector(HttpClient.create(connectionProvider));
WebClient webClient = WebClient
.builder()
.clientConnector(clientHttpConnector)
.build();
@GetMapping(value = "my_endpoint")
public void getSomething(String token) {
webClient.get()
.uri(BASE_URL + "/my_endpoint")
.header("Authorization", "Bearer " + token)
.retrieve()
.bodyToFlux(String.class)
.onErrorResume(error -> Flux.empty())
.subscribe();
}
我面临的问题是内存使用,应用程序有时会卡在 1200-1500 req/s 左右。 我只想发送我将要发送的内容,而完全忽略回复。发送后忘记。使用 Spring Web 客户端可以吗? 或者也许我的 WebClient 配置错误?
答: 暂无答案
评论
retrieve()
.toBodilessEntity()
webClient.get().uri(BASE_URL + "/my_endpoint").header("Authorization", "Bearer " + token).retrieve().toBodilessEntity();
toBodilessEntity()
.block()