gpt4 book ai didi

spring-webflux - 因为我的基本URI不固定,所以在Webflux中一次又一次地创建Webclient是否明智?

转载 作者:行者123 更新时间:2023-12-04 08:27:49 24 4
gpt4 key购买 nike

在我的微服务中,我必须从地方获取数据。有些网址是固定的,但有些不是固定的。因此,如果我的基本URL发生更改,我是否需要一次又一次创建Webclient。
如果不是,则以下是创建Web客户端的正确方法。
WebClient.create();
然后每当我打电话时就一次又一次地更改URI。
根据我的理解,创建WebClient必须非常繁琐。

ReactorClientHttpConnector connector = new ReactorClientHttpConnector(
options -> options.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, requestTimeout).compression(true)
.afterNettyContextInit(ctx -> ctx.addHandlerLast(new ReadTimeoutHandler(readTimeout, TimeUnit.MILLISECONDS))));
return WebClient.builder()
.clientConnector(connector)
.baseUrl(hostURL)
.build();

最佳答案

WebClient实例是可重用的。您需要具有不同客户端实例的唯一原因是出于特定需求:可观察性的检测,特定的身份验证客户端筛选器,特定的连接/读取/写入超时。

不同的基本URI不是创建不同实例的强烈理由。创建实例而不设置基本URI很好,这只是避免重复调用同一主机时避免重复的一种方便。

这很好:

WebClient webClient = WebClient.builder().build();

Mono<Resource> resource = webClient.get().uri("http://example.org/resource").retrieve()...;
Mono<Project> project = webClient.get().uri("http://spring.io/projects/spring-boot").retrieve()...;

请注意,如果您使用Spring Boot,则应该考虑使用提供的 WebClient.Builder构建Webclient实例(请参阅 the Spring Boot reference documentation)。

关于spring-webflux - 因为我的基本URI不固定,所以在Webflux中一次又一次地创建Webclient是否明智?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53844396/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com