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

spring boot FeignClient vs WebClient

纪实
2023-03-14

我想使用一些Rest服务。以前我用过RestTemplate,但是现在我想知道SpringBoot FeignClient和WebClient的主要区别是什么?何时应该使用它们?

共有3个答案

西门胜涝
2023-03-14

WebClient是一种无阻塞的反应式客户端。

佯装正在阻止。

宫高义
2023-03-14

为了能够回答“何时”,需要了解每个人的能力。

SpringWebClient是一个无阻塞的响应式客户端,用于发出HTTP请求。因此,如果您打算使用Spring Reactive Stream API异步传输数据,那么这就是方法。思考事件驱动架构。WebClient是Spring WebFlux库的一部分。

3是一个声明性REST库,它使用基于注释的架构和线程请求模型。这意味着线程将阻塞,直到假装客户端收到响应。阻塞代码的问题是它必须等到消费线程完成,因此考虑内存和CPU周期。

因此,当需要非阻塞HTTP请求时,请使用Spring WebClient,否则由于简单的使用模型而假装。

(注意:没有理由说明为什么不能使用WebClient进行阻塞操作,但是Feign更成熟,它基于注释的模型使它更容易)

曹渝
2023-03-14

主要区别在于WebClient支持响应式调用。你可以通过像https://github.com/Playtika/feign-reactive这样的第三方虚拟客户端来实现这一点,但基本上对于一种反应式的方式,你应该考虑将WebClient与一些整洁的异步连接器一起使用,比如Jetty。另一方面,如果你想要一个麻烦最小的阻塞方式,那么假装可能是你最好的选择。

 类似资料:

相关问答

相关文章

相关阅读