一、概述
与Ribbon类似,都可以实现服务的调用,实现负载均衡。它只需要我们创建一个接口,并添加相对应的注解来完成微服务之间的调用
二、使用步骤
- pom引入
<!-- 引入 spring-cloud-openfeign 依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
- application.yml 配置文件修改
server:
port: 80
eureka:
client:
# 不将自己注册到 Eureka(注册与否自己决定,随便)
register-with-eureka: false
service-url:
# Eureka注册中心集群地址
defaultZone: http://eureka7001.com:7001/eureka, http://eureka7002.com:7002/eureka
- 主启动类添加
@EnableFeignClients
注解 - 添加调用接口
@Component
@FeignClient(value = "CLOUD-PAYMENT-SERVICE")
public interface PaymentFeignService {
@GetMapping("/payment/get/{id}")
CommonResult getPaymentById(@PathVariable("id") Long id);
}
三、配置超时时间
由于OpenFeign内置了Ribbon
#设置feign客户端超时时间(OpenFeign集成了Ribbon,超时由ribbon控制)
ribbon:
#指的是建立连接后从服务器读取到可用资源所用的时间
ReadTimeout: 5000
#指的是建立连接所用的时间,适用于网络正常的情况下,两端连接所用的时间
ConnectTimeout: 5000
四、服务降级
五、日志打印
- 配置类
@Configuration
public class FeignConfig {
@Bean
Logger.Level feignLoggerLevel(){
return Logger.Level.FULL;
}
}
- 修改yml文件
#配置日志输出级别
logging:
level:
com.study.springcloud.service.PaymentFeignService: debug