Spring Cloud Feign

Feign是一个声明式的Web Service客户端,它的目的就是让WebService调用更加简单。

特性

  • 可插拔的注解支持,包括Feign注解和JAX-RS注解
  • 支持可插拔的HTTP编码器和解码器
  • 整合了ribbon,具有负载均衡的能力
  • 整合了Hystrix,具有熔断的能力
  • 支持HTTP请求和响应的压缩

工作原理

  • 在开发微服务应用时,我们会在主程序入口添加@EnableFeignClients注解开启对Feign Client扫描加载处理。
  • 当程序启动时,会进行包扫描,扫描所有@FeignClients的注解的类,并将这些信息注入 Spring IOC容器中。当定义的 Feign接口中的方法被调用时,通过JDK的代理的方式,来生成具体的 RequestTemplate,此时Feign会为每个接口方法创建一个RequetTemplate对象,该对象封装了HTTP请求需要的全部信息,如请求参数名、请求方法等都是在这个过程中确定的。
  • 然后由RequestTemplate生成Request,并把Request交给Client去处理,这里指的Client可以是JDK原生的URLConnection、Apache的HttpClient、也可以是OkHttp。最后 Client被封装到LoadBalanceclient类,这个类结合Ribbon负载均衡发起服务之间的调用。

些许认识

  • 事实上我们仅需要对消费者的Service层启用@FeignClient注解,无须实现,即可通过注解像使用其他Service那样使用他,虽然这个Service的实现过程并不在本地,这种设计方式即是WebService。

代码Demo

Spring Cloud Feign

相关文章:

  • 2021-07-15
  • 2021-07-05
  • 2021-06-09
  • 2021-08-19
  • 2021-09-20
  • 2021-10-04
  • 2021-11-16
  • 2021-06-01
猜你喜欢
  • 2019-07-20
  • 2021-06-27
  • 2021-12-04
  • 2021-07-25
  • 2021-06-27
  • 2019-01-16
  • 2021-04-21
相关资源
相似解决方案