Feign是一个声明式WebService客户端。使用Feign能让编写Web Service客户端更加简单。只需要创建一个接口并在接口上添加一个注解就可以了
它的使用方法是定义 一个服务接口然后在上面添加注解。Feign也支持可拔插式的编码器和解码器。Spring Cloud对Feign进行了
封装,使其支持了Spring MVC标准注解和HttpMessageConverters。Feign可以与Eureka和Ribbon组合使用以支持负载均衡
Feign能干什么
前面在使用Ribbon+RestTemplate时,利用RestTemplate对http请求的封装处理,形成了一套模板化的调用方法。
往往一个接口会被多处调用,所有通常都会针对每个微服务自行封装一些客户端类来包装这些依赖服务的调用。
所以Feign在此基础上做了进一步的封装,在Feign的实现下,我们只需要创建一个接口并使用注解的方式来配置
它。
Feign集成Ribbon 利用Ribbon维护Payment的服务列表
引入pom文件
<!-- OpenFeign -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
application.yml
server:
port: 80
spring:
application:
name: cloud-customer-feign-service
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/
主启动类上添加注解
编写service代码
@FeignClient注解里填写的是服务提供者的name
而代码则与服务提供者的controller中URL一致
编写controller代码
然后就可以启动测试了