微服务之间的通信:Spring Cloud OpenFeign vs. WebClient/RestTemplate

3

有关反向通信的最佳方法,请问您有什么想法吗?

Spring Cloud OpenFeign还是WebClient/RestTemplate

我认为当Spring Cloud网关需要与其他微服务通信时,应使用Feign客户端,而在反向通信时应使用WebClient/RestTemplate

我错了吗?


1
Feign是声明式的,而其他的则是命令式的。如果您想共享客户端,那么使用Feign非常有用。 - spencergibb
@spencergibb 好的,那么微服务之间的通信有什么不同吗? - Amir Choubani
RestTemplate现已弃用。当您使用Ribbon负载平衡器进行任何分布式呼叫时,可以轻松地使用带有FeignClient和RibbonClient注释的Feign客户端与Ribbon负载平衡器一起使用。 - dneranjan
1
它们都支持 Ribbon。 - spencergibb
2个回答

5

WebClient(RestTemplate已弃用,现在支持WebClient)

  • 支持响应式调用

  • 底层的HTTP客户端库,如Reactor Netty

  • Spring框架的一部分 - WebFlux || 文档将为您提供更多信息

  • 有两种方式 - 注解和函数式

    个人在使用OAuth2创建bean webClient时发现它非常有用,在进行调用之前,需要使用令牌进行身份验证,ServerOAuth2AuthorizedClientExchangeFilterFunction会通过仅进行一次配置来轻松完成每个调用

OpenFeign


1
Feign Client是API的一个很好的选择,因为它通常需要较少的样板代码,可以处理容错性,并且很容易配置重试和超时。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接