【发布时间】:2025-12-17 16:35:01
【问题描述】:
您好,我正在使用来自 spring webflux 的 webClient。我有一些代码,例如:
@Configuration
class WebClientConfig(
@Value("\${url}")
private val url: String
) {
@Bean
@Primary
fun webClient(): WebClient {
return createWebClient(700)
}
@Bean("more_timeout")
fun webClientMoreTimeout(): WebClient {
return createWebClient(3000)
}
private fun createWebClient(timeout: Int): WebClient{
val httpClient = HttpClient.create()
.tcpConfiguration { client -> client.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, timeout) }
return WebClient.builder()
.baseUrl(url)
.clientConnector(ReactorClientHttpConnector(httpClient))
.build()
}
}
这个配置是因为我需要不同超时的调用。假设我有一个对我的响应非常重要的服务 A,所以我想等待最多 3 秒的响应,并且假设你有另一个服务 B、C 等,这对我的响应不是很重要,我只会等待700 毫秒生成响应。我可以向谁存档? 以前的配置不起作用,因为 webClient 是不可变的。
【问题讨论】:
标签: spring kotlin netty webclient spring-webflux