Feign简介
在前面我们已经搭建了Spring Cloud中的Ribbon和Hytrix,从而实现了微服务架构中客户端的负载均衡以及断路器机制保护服务,这两者的使用非常广泛并且经常一起出现,SpringCloud Feign其实就是一个整合工具,对两者进行了整合,除了原有的功能外,还提供了声明式的Web服务客户端定义方式。
快速搭建
- 新创建一个springboot项目feign-consumer,添加feign和eureka依赖:
dependencies {
implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-server'
implementation 'org.springframework.cloud:spring-cloud-starter-openfeign'
}
- 在启动类上添加注解开启Feign支持功能
@EnableDiscoveryClient
@EnableFeignClients
@SpringBootApplication
public class FeignConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(FeignConsumerApplication.class, args);
}
}
- 定义HelloService接口,添加@FeignClient注解指定已注册到注册中心的服务名,并且创建对应的REST接口
@FeignClient("hello-service")
public interface HelloService {
@RequestMapping("/hello")
String hello();
}
- 定义ConsumerController来实现service层的调用
@RestController
public class ConsumerController {
@Autowired
HelloService helloService;
@RequestMapping(value = "/feign-consumer")
public String helloConsumer() {
return helloService.hello();
}
}
当然最后不要忘记在配置文件中添加注册中心的地址并且指定端口号,由于这是我们springcloud学习过程中搭建的第四个项目,所以我这里port指定为4444
spring.application