spring-boot - Spring Boot响应式WebClient调用遗留端点
问题描述
在 Spring Boot (2.2.2.RELEASE) 应用程序中,我有响应式端点(返回 Mono 或 Flux),它们每个都使用响应式 WebClient 来调用另一个服务。这种“其他”服务是遗留(非反应性)服务。
这是我的问题:
如果我的反应性端点正在调用这个阻塞东西的非反应性端点,那么使用 Webflux(反应性 WebClient)是否有好处?
我的反应式端点是否仍然反应式?
解决方案
如果我们谈论的是 HTTP 端点,我们可以使用阻塞或非阻塞(异步)客户端调用它们,但不能完全响应。
如果您的“新”应用程序是反应式的,则必须使用非阻塞客户端(在您的情况下为 WebClient),否则您将阻塞 NIO 线程并失去反应式方法的所有优势。“其他”应用程序被阻塞的事实并不重要,您仍然可以获得资源较少的“新”应用程序。
推荐阅读
- c# - 单击按钮打开文件夹并在 xamarin 表单和 orid 中获取文件夹的路径
- sql - 为什么 ef core 2.1 为包含生成多个选择
- java - 从 Struts Action (Liferay 6.2) 的钩子中更改表单值
- signature - Bro IDS signature_match 触发器
- javascript - 旋转包含的图像后,div 高度未正确设置
- angular - Angular,TypeError:无法读取 null 的属性“任务”
- java - 调用时如何处理其他模块自定义异常
- angular - Ionic 3 Angular 4 App 在产品发布版本上抛出错误
- php - 如何在 Yii2 urlManager 中为默认页面创建干净的 url
- javascript - JQuery 调用在我的 AngularJS 页面中不起作用