目录
Feign
Feign
是一种声明式服务调用组件,它在RestTemplate
的基础上做了进一步的封装。通过Feign
,我们只需声明一个接口,并通过注解进行简单的配置,即可实现对HTTP
接口的绑定。
Feign
对 Ribbon
进行了集成,通过 Ribbon
实现了客户端的负载均衡调用。
OpenFeign
OpenFeign
是 Spring Cloud
对 Feign
的二次封装,它具有 Feign
的所有功能,并在Feign
的基础上增加了对 Spring MVC
注解的支持。
核心注解
@FeignClient
该注解用于通知 OpenFeign
组件对 @RequestMapping
注解下的接口进行解析,并通过动态代理的方式产生实现类,实现负载均衡和服务调用。
@EnableFeignClients
该注解用于开启 OpenFeign
功能,当 Spring Cloud
应用启动时,OpenFeign
会扫描标有 @FeignClient
注解的接口,生成代理并注册到 Spring
容器中。
OpenFeign远程服务调用示例
搭建producer服务(被调用方)
1.创建一个springboot
应用
(1)pom
文件添加相关依赖
<!-- 微服务组件-eureka client -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<version>${spring.cloud.netflix.version}</version>
</dependency>
<!-- 微服务组件-ribbon -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
<version>${spring.cloud.netflix.version}</version>
</dependency>
<!-- 微服务组件-feign -->
<dependency>
<groupId>org.springframework.cloud