SpringBoot FeignClient vs WebClient

9udxz4iz  于 2023-08-04  发布在  Spring
关注(0)|答案(3)|浏览(170)

我想享受几次休息服务。之前,我使用RestTemplate,但现在我想知道Sping Boot FeignClientWebClient之间的主要区别。
何时使用?

monwx1rj

monwx1rj1#

为了能够回答**“何时”,需要了解每个人的能力。
Spring WebClient 是一个
非阻塞**响应式客户端,用于发出HTTP请求。因此,如果您打算使用Spring Reactive Stream API来异步地流式传输数据,那么这就是要走的路。想想事件驱动架构。WebClient是Spring WebFlux库的一部分。

  • [Feign]* 3是一个声明式REST库,它使用基于注解的架构和每请求一个线程的模型。这意味着线程将阻塞,直到伪客户端接收到响应。阻塞代码的问题是它必须等到消费线程完成,因此需要考虑内存和CPU周期。

因此,当需要非阻塞HTTP请求时,请使用SpringWebClient,否则由于使用模型简单,请使用Feign
(Note:没有理由为什么不能使用WebClient来阻止操作,但Feign更成熟,它的基于注解的模型使其更容易)

cgh8pdjw

cgh8pdjw2#

主要区别在于WebClient支持响应式调用。你可以使用第三方的虚拟客户端,比如https://github.com/Playtika/feign-reactive来实现,但是基本上,对于一种React式的方式,你应该考虑使用WebClient和一些简洁的异步连接器,比如Jetty。另一方面,如果你想要一个阻塞的方式与最小的麻烦,然后Feign可能是你最好的选择.

hxzsmxv2

hxzsmxv23#

WebClient是一个非阻塞的响应式。
假装是阻挡。

相关问题