微服务组件OpenFeign的学习

OpenFeign

  • 添加依赖
  • OpenFeign的简单使用
  • OpenFeign日志配置
  • OpenFeign超时时间配置

添加依赖

		<dependency>
            <groupId>org.springframework.cloudgroupId>
            <artifactId>spring-cloud-starter-openfeignartifactId>
        dependency>

OpenFeign的简单使用

//name 指定调用rest接口所对应的服务名称
//path 指定调用rest接口所在的Controller指定的@RequestMapping
@FeignClient(name = "book-service" , path = "/bookQuery")
public interface BookFeignService {
    @RequestMapping("/reduct")
    String reduct();
}

OpenFeign日志配置

在遇到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

OpenFeign超时时间配置

通过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

你可能感兴趣的:(微服务,学习,spring,boot,java)