Feign

Feign

image-20210129113720905

什么是Feign?

feign 是 spring cloud Netflix 组件中一个轻量级的 RESTful 的 http 客户端,实现了 负载均衡 和 rest 调用的开源框架.

封装了 ribbon 和 RestTemplate,实现了 webService 的面向接口编程,进一步降低了耦合度.

feign内置了ribbon,用来做客户端的负载均衡调用服务注册中心的服务.

feign本身并不支持springMVC注解.

feign是一种声明式、模板化的http客户端.(仅在consumer)

feign的使用方式是: 使用feign的注解定义接口,调用这个接口,就可以调用注册中心的服务.

Feign解决了什么问题?

feign旨在使编写Java 的http客户端更加容易,feign简化了RestTemplate的代码,实现了ribbon的负载均衡,使代码更加简洁,减少了客户端的调用代码.只需要创建一个接口,然后在上面添加注解即可

feign是 声明式服务调用组件,核心就是像本地调用服务一样调用远程方法

Feign和OpenFeign

OpenFeign是springcloud的基础上支持了spring mvc的注解,例如@RequestMapping等等.

openFeign的@FeignClient 可以解析springMVC下的@RequestMapping注解接口,并通过动态代理的方式产生实现类.在实现类中做负载均衡并调用服务.