Reactor Flux 链接,如果成功则中断并继续

Reactor Flux chaining, break and continue if one succeeds

用例是尝试连接到其中一台后端服务器,如果成功就足够了。有什么方法可以在不阻塞的情况下使用 Reactor 框架完成此操作吗?

例如:

List<String> servers = ...
Flux.fromIterable(servers)

这个 flux 应该一个接一个地尝试连接并发送数据到服务器,直到成功。

有什么方法可以做到这一点吗?

提前致谢。

正是为了这个目的,有 Flux#first 方法。 所以你需要查询服务器,如果没有结果,return empty flux,所以 reactor 会尝试下一个查询,依此类推:

    Flux.first(
        Flux.fromIterable(servers)
        .flatMap(this::queryServer)
    )