小编ODD*_*us1的帖子

在阻塞应用程序设计中使用Spring Webflux的WebClient是否会导致比RestTemplate更大的资源使用

我正在开发几个 spring-boot 应用程序,它们具有传统的每个请求线程模式。我们使用 Spring-boot-webflux 获取 WebClient 以在应用程序之间执行 RESTful 集成。因此,我们的应用程序设计要求我们在收到响应后立即阻止发布者。

最近,我们一直在讨论在我们的阻塞应用程序设计中是否使用反应式模块不必要地花费资源。据我了解,WebClient 通过分配工作线程来执行事件循环中的反应操作来利用事件循环。因此,使用 webclient.block()会使原始线程休眠,同时分配另一个线程来执行 http 请求。与替代的 RestTemplate 相比,WebClient 似乎会通过使用事件循环花费额外的资源。

以这种方式部分引入 spring-webflux 会导致额外的资源消耗,同时不会对性能产生任何积极的贡献,无论是单线程还是并发,是否正确?我们并不期望将当前的堆栈升级为完全响应式,因此逐步升级的论点不适用。

java performance spring-boot spring-webflux spring-webclient

25
推荐指数
2
解决办法
2万
查看次数