介绍
作为Spring Cloud的子项目之一,Spring Cloud OpenFeign以将OpenFeign集成到Spring Boot应用中的方式,为微服务架构下服务之间的调用提供了解决方案。首先,利用了OpenFeign的声明式方式定义Web服务客户端;其次还更进一步,通过集成Ribbon或Eureka实现负载均衡的HTTP客户端。
说到OpenFeign,不得不提的就是Ribbon。Ribbon是Netflix公司的一个开源的负载均衡项目,是一个客户端负载均衡器,运行在消费者端。
OpenFeign也是运行在消费者端的,使用Ribbon进行负载均衡,所以OpenFeign直接内置了Ribbon。即在导入OpenFeign依赖后,无需再专门导入Ribbon依赖了
@FeignClient和@EnableFeignClients
OpenFeign提供了两个重要标注**@FeignClient和@EnableFeignClients**。
-
@FeignClient标注用于声明Feign客户端可访问的Web服务。
-
@EnableFeignClients标注用于修饰Spring Boot应用的入口类,以通知Spring
Boot启动应用时,扫描应用中声明的Feign客户端可访问的Web服务。
使用
依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
启动类添加@EnableFeignClients注解
Feign Service类
//方法参数和mapping路径需要一致,接口名方法名可以随意
@FeignClient(value = "Payment-Service")
@Component
public interface PaymentFeignService {
@GetMapping("/payment/get/{id}"