我目前正在将我们现有的Spring异步REST体系结构迁移到Spring的新WebFlux库中,对于如何连接多个请求以便它们可以侦听相同的已发布响应,我有一个疑问。
用例如下:
客户端B如何订阅客户端A正在等待的相同响应流?
“客户端A已订阅并等待响应” 我想请求被编码为 Mono 客户A从字面上描述:
Mono
Subscriber<Response> clientA = ... Mono<Response> request = makeRequest(...); request.subscribe(clientA);
那么clientB应该以同样的方式订阅:
Subscriber<Response> clientB = ... request.subscribe(clientB);
此外,缓存不应包含以前保存的响应数据,而应包含类型为的请求本身 Mono<Response> 。然后,如果在缓存中找到这样的请求,新客户端只需订阅它,而不管该请求是否已完成。
Mono<Response>