当前位置: 首页 > 知识库问答 >
问题:

Spring boot active WebClient调用遗留endpoint

束志业
2023-03-14

在Spring Boot(2.2.2.release)应用程序中,我有反应endpoint(返回Mono或Flux),每个endpoint都使用反应WebClient调用另一个服务。这个“其他”服务是遗留的(非被动的)服务。

以下是我的问题:

>

  • 如果我的反应式endpoint正在调用这个非反应式endpoint,那么使用Webflux(反应式WebClient)是否有好处?

  • 共有1个答案

    马正初
    2023-03-14

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

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

     类似资料:
    • 虽然Django最适合用来开发新的应用,但也可以将它整合到遗留的数据库中。Django包含了很多工具,尽可能自动化解决这类问题。 这篇文章假设你了解Django的基础部分,它们在教程中提及。 一旦你的Django环境建立好之后,你可以按照这个大致的流程,整合你的现有数据库。 向Django提供你的数据库参数 你需要告诉Django你的数据库连接参数,以及数据库的名称。请修改DATABASES设置,

    • Java8不再支持JDBC-ODBC桥。在Java8中,有没有一种方法可以在没有桥接的情况下访问遗留的MDB文件?我所说的legacy是指Access2.0。UCanAccess不支持这样的旧版本,这是在这里建议的。

    • 虽然 Sequelize 自认为可以开箱即用, 但是如果你要使用应用之前遗留的资产和凭据,仅需要通过定义(否则生成)表和字段名称即可. 表 class User extends Model {} User.init({ // ... }, { modelName: 'user', tableName: 'users', sequelize, }); 字段 class MyModel

    • 我把我的mac更新到了Yosemite10.10。现在它给了我这个错误: 我该怎么办?

    • 虽然 Sequelize 自认为可以开箱即用, 但是如果你要处理遗留表并向前验证应用程序,仅需要通过定义(否则生成)表和字段名称即可. 表 class User extends Model {} User.init({ // ... }, { modelName: 'user', tableName: 'users', sequelize, }); 字段 class MyMode