Spring 启动响应式 WebClient 调用遗留端点

Spring boot reactive WebClient calling legacy endpoint

在 Spring Boot (2.2.2.RELEASE) 应用程序中,我有反应式端点(返回 Mono 或 Flux),每个端点都使用反应式 WebClient 来调用另一个服务。此 "other" 服务是遗留(非反应性)服务。

这是我的问题:

他们是 1.不完全。 2. 在您更改遗留 API 之前,您的请求不会完全响应

解释: 端到端响应式模式仅有助于性能方面 目前您正在使用反应式客户端,这有助于以两种方式连接到服务器。 第一组 API 是反应性的,因此 Web 服务器层现在是反应性的,但数据层(旧版 API)不是反应性的

如果我们谈论的是 HTTP 端点,我们可以使用阻塞或非阻塞(异步)客户端调用它们,但不能完全响应。

如果您的 "new" 应用程序是反应式的,您必须使用非阻塞客户端(在您的情况下是 WebClient),否则您将阻塞 NIO 线程并失去反应式方法的所有优势。 “其他”应用程序阻塞这一事实并不重要,您仍然可以获得资源密集度较低的 "new" 应用程序。