前言:
前面整合了ribbon+restemplate实现了客户端的负载均衡,本文将实现通过feign客户端完成负载均衡。
一、简介、
SpringCloud Feign是基于Netflex feign实现,声明式的Web服务客户端定义的方式。Spring Cloud Feign具备可插拔的注解支持,支持Feign注解、JAX-RS注解和Spring MVC的注解。
二、环境搭建
1、修改父工程(封装公共Bean和接口),添加相关得依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
在原基础上增加依赖
2、在接口上增加注解
value表示微服务名称
通过@RequestMapping映射到各个接口得实现类
3、由于父工程被修改,重新Maven-install。
4、在客户端增加相关得依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
5、修改客户端代码,将原来得通过RestTemplate调用修改成通过接口调用
6、修改客户端启动类
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients(basePackages = {"com.tommy.spring"})
@ComponentScan("com.tommy.spring")
public class Dept_Consumer_FeginApp {
public static void main(String[] args) {
SpringApplication.run(Dept_Consumer_FeginApp.class, args);
}
}
增加@EnableEurekaClient
@EnableFeignClients(basePackages = {"xxxxx"})
@ComponentScan("xxxx")
将客户端注册到eureka,启动Feign客户端,Feign客户端会自动在Eureka寻找注册得服务,并默认通过轮询调用。