Java 如何使SpringWebFlux等待服务器中满足指定条件,然后返回响应

Java 如何使SpringWebFlux等待服务器中满足指定条件,然后返回响应,java,spring,reactive-programming,spring-webflux,Java,Spring,Reactive Programming,Spring Webflux,我是SpringWebFlux的新手。我想要一个名为isconfired的反应式服务,该服务必须等待,直到我的服务器的另一个服务被调用,例如名为confirm。这两个服务都位于我的服务器中,第一个响应式服务必须等待第二个服务(确认)被调用,然后返回确认消息。我不希望在调用第二个服务之前阻止服务器中的线程。就像一个观察者模式。使用spring web flux是否可能 更新:当服务器使用分布式缓存时,我们可以使用此功能吗?我认为您可以在两个服务之间使用一个完整的未来,类似于: Completabl

我是SpringWebFlux的新手。我想要一个名为isconfired的反应式服务,该服务必须等待,直到我的服务器的另一个服务被调用,例如名为confirm。这两个服务都位于我的服务器中,第一个响应式服务必须等待第二个服务(确认)被调用,然后返回确认消息。我不希望在调用第二个服务之前阻止服务器中的线程。就像一个观察者模式。使用spring web flux是否可能


更新:当服务器使用分布式缓存时,我们可以使用此功能吗?

我认为您可以在两个服务之间使用一个完整的未来,类似于:

CompletableFuture=newcompletablefuture();
公共Mono已确认(){
返回Mono.fromFuture(future);
}
公共作废确认(字符串确认){
未来。完成(确认);
}

非常感谢。它不会阻止服务器上的任何线程?不会,因为不会立即发送isconfirm的答案,并且它使用的线程可以执行其他操作,那么将在服务确认中使用的线程将是触发第一个响应的线程。非常感谢。问题解决了。关于这个解决方案,我还有一个问题。如果我有多个服务器和分布式缓存呢?这个解决方案仍然可以工作吗?在多服务器环境中工作确实更复杂。您将需要一个中间系统,如事件总线(如RabbitMQ或Kafka),将确认分发到所有服务器,以便将其发送到所有等待的客户端。