小编nav*_*ain的帖子

由于我的基本 URI 不固定,在 Webflux 中一次又一次地创建 Webclient 是否明智?

在我的微服务中,我必须从地方获取数据。有些 URL 是固定的,但有些不是。如果我的基本 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();
Run Code Online (Sandbox Code Playgroud)

project-reactor reactor-netty spring-webflux

10
推荐指数
1
解决办法
4227
查看次数

处理 Reactor 中的并行通量

我从 iterable 创建了一个并行通量。在每个可迭代对象上,我都必须进行一次休息调用。但是在执行时,即使任何请求失败,所有剩余的请求也会失败。无论失败或成功,我都希望执行所有请求。

我目前正在使用 Flux.fromIterable 并使用 runOn 运算符

Flux.fromIterable(actions)
.parallel()
.runOn(Schedulars.elastic())
.flatMap(request -> someRemoteCall)     
.sequential()
.subscribe();
Run Code Online (Sandbox Code Playgroud)

我希望执行 iterable 中的所有请求,无论失败或成功。但到目前为止,有些被执行了,有些失败了。

spring-boot project-reactor spring-webflux

6
推荐指数
1
解决办法
6245
查看次数