Java Project Reactor将发布服务器拆分为两个,其中至少有两个订阅服务器

Java Project Reactor将发布服务器拆分为两个,其中至少有两个订阅服务器,java,project-reactor,reactor,Java,Project Reactor,Reactor,如何在Reactor中将发布服务器拆分为两个,这样就存在两个相同的数据流,以便在不同的流中处理下游的数据流 因此,我可以映射每个流并单独订阅每个流 在API中,我看不到任何东西表明这是错误的 我需要等到两个订阅服务器都启动并准备就绪后才能发布 感谢您的输入,我没有直截了当地思考,当然只有多个订户: val flux = Flux.just("MyData1", "MyData2", "MyData3"); flux.doOnNext { println("Subscribing one

如何在Reactor中将发布服务器拆分为两个,这样就存在两个相同的数据流,以便在不同的流中处理下游的数据流

因此,我可以映射每个流并单独订阅每个流

在API中,我看不到任何东西表明这是错误的


我需要等到两个订阅服务器都启动并准备就绪后才能发布

感谢您的输入,我没有直截了当地思考,当然只有多个订户:

  val flux = Flux.just("MyData1", "MyData2", "MyData3");

  flux.doOnNext { println("Subscribing one$it") }.subscribe()

  flux.doOnNext { println("Subscribing Two$it") }.subscribe()
将输出:

Subscribing oneMyData1
Subscribing oneMyData2
Subscribing oneMyData3
Subscribing TwoMyData1
Subscribing TwoMyData2
Subscribing TwoMyData3
正如上面所建议的,有,但这个API不允许设置订阅者的最小数量,所以最好调用下面的函数,因为在我的例子中,我想等待,直到我们有两个订阅者。文件说

一个流量在第一次订阅时会导致源流量订阅一次,因此延迟订阅的用户可能会错过项目

这将导致以下输出,以确保在启动第二个订阅服务器时出现延迟时不会丢失消息

Subscribing oneMyData1
Subscribing TwoMyData1
Subscribing oneMyData2
Subscribing TwoMyData2
Subscribing oneMyData3
Subscribing TwoMyData3

好的,订阅两次同一个发布服务器,发布服务器将为两个订阅服务器发布其值。如果希望原始发布服务器只发布一次,则有share()或cache()。
Subscribing oneMyData1
Subscribing TwoMyData1
Subscribing oneMyData2
Subscribing TwoMyData2
Subscribing oneMyData3
Subscribing TwoMyData3