【SpringCloud】Feign 和 OpenFeign 两者的异同点
Feign 和 OpenFeign 两者共同点
Feign和OpenFeign作用一样,都是进行远程调用的组件。
里面都内置了 Ribbon。
都是加在消费端的注解,让消费端可以调用其他生产者的服务。
Feign 和 OpenFeign 两者区别
(1)依赖不同
Feign 的依赖
<!-- feign -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
OpenFeign 的依赖
<!-- openfeign -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
(2)使用方式不同
Feign
Feign是SpringCloud组件中的一个轻量级Restful的HTTP服务客户端,Feign内置了Ribbon,用来做客户端负载均衡,去调用服务注册中心的服务。
Feign的使用方式是:使用Feign的注解定义接口,调用这个接口,就可以调用服务注册中心的服务
OpenFeign
OpenFeign是SpringCloud在Feign的基础上支持了SpringMVC的注解,如@RequestMapping等等。
OpenFeign的@FeignClient可以解析SpringMVC的@RequestMapping注解下的接口,并通过动态代理的方式产生实现类,实现类中做负载均衡并调用其他服务。