<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
//name 指定调用rest接口所对应的服务名称
//path 指定调用rest接口所在的Controller指定的@RequestMapping
@FeignClient(name = "book-service" , path = "/bookQuery")
public interface BookFeignService {
@RequestMapping("/reduct")
String reduct();
}
在遇到BUG时,比如接口调用失败、参数没有接收到等问题,或者需要查看调用性能时,可以通过Feign日志进行查看。日志等级分为以下四种:
(1)NONE:性能最佳,用于生产环境,不记录任何日志(默认)
(2)BASIC:适用于生产环境追踪问题,仅记录请求方法、URL、响应码及执行时间
(3)HEADERS:记录BASIC级别的基础上,记录请求和相应的header
(4)FULL:比较适用于开发及测试环境定位问题,记录请求和响应的header、body和元数据
日志配置分为全局配置和局部配置:
全局配置:使用@Configuration将配置作用所有的服务提供方
@Configuration
public class OpenFeignConfig {
@Bean
public Logger.Level feignLoggerLevel(){
return Logger.Level.FULL;
}
}
注意:SpringBoot默认的日志级别是Info,Feign的日志级别是Debug不会输入,因此需要在配置文件中针对Feign接口进行日志级别设置。
logging:
level:
cn.cloud.alan.feign: debug
局部配置:当只想针对某一个服务进行配置,就不要使用@Configuration
feign:
client:
config:
cloud-openFeign:
logger-level: FULL
通过Options可以配置连接超时时间和读取超时时间,Options的第一个参数是连接的超时时间(ms),默认值是2s;第二个是请求处理的超时时间(ms),默认值是5s。
全局配置
@Configuration
public class OpenFeign {
@Bean
public Request.Options options(){
return new Request.Options(5000,10000);
}
}
局部配置
feign:
client:
config:
cloud-openFeign:
logger-level: FULL
connectTimeout: 10000
readTimeout: 10000