新建项目 spring-cloud-feign-consumer pom.xml中引入需要的依赖内容:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-feign</artifactId> </dependency>在工程的启动类中,通过@EnableFeignClients 注解开启Feign的功能:
@EnableFeignClients @EnableDiscoveryClient @SpringBootApplication public class FeignConsumerApplication { public static void main(String[] args) { SpringApplication.run(FeignConsumerApplication.class, args); } }通过@FeignClient("服务名"),来指定调用哪个服务。 比如在代码中调用了eureka-provider服务的 / 接口,/ 就是调用:服务提供者项目:spring-cloud-eureka-provider-1,spring-cloud-eureka-provider-2,spring-cloud-eureka-provider-3的 home() 方法,代码如下:
@FeignClient("eureka-provider") public interface HomeClient { @GetMapping("/") String consumer(); }写一个 Controller,消费提供者的 home 方法
@RestController public class ConsumerController { @Autowired private HomeClient homeClient; @GetMapping(value = "/hello") public String hello() { return homeClient.consumer(); } }完整配置 application.yml
指定注册中心地址,配置自己的服务名称
eureka: client: serviceUrl: defaultZone: http://localhost:8761/eureka/ spring: application: name: feign-consumer server: port: 9000依次启动项目:
spring-cloud-eureka-service spring-cloud-eureka-provider-1 spring-cloud-eureka-provider-2 spring-cloud-eureka-provider-3 spring-cloud-feign-consumer
启动该工程后,访问服务注册中心,查看服务是否都已注册成功:http://localhost:8761/
在命令窗口curl http://localhost:9000/hello,发现Feign已经实现负载均衡
或者浏览器get 请求http://localhost:9000/helloF5 刷新