zoukankan      html  css  js  c++  java
  • 服务调用Feign高级

    1 Feign的配置

    • 从Spring Cloud Edeware开始,Feign支持使用属性自定义。对于一个指定名称的Feign Client(例如该Feign Client的名称是feignName),Feign支持如下的配置项。
    # 配置Feign  
    feign:
      client:
        config:
          feignName: # 自定义FeignClient的名称
            connectTimeout: 5000 # 建立连接的超时时间
            readTimeout: 5000 # 读取的超时时间
            # 配置Feign的日志级别
            loggerLevel: full
            # Feign的错误解码器,相当于代码配置方式中的ErrorDecoder
            errorDecoder: feign.codec.ErrorDecoder.Default
            # 配置重试
            retryer: feign.Retryer.Default
            # 配置请求拦截器
            requestInterceptors:
              - BasicAuthRequestInterceptor
              - BaseRequestInterceptor
            # 配置熔断不处理404异常
            decode404: false
    
    • 如果需要改变所有的Feign Client,可使用默认的feign名称创建配置属性:
    feign:
      client:
        config:
          default:
            connectTimeout: 5000
            readTimeout: 5000
            loggerLevel: basic
    

    2 请求压缩

    • Spring Cloud Feign支持对请求和响应进行Gzip压缩,以减少通信过程中的性能损耗。通过下面的参数可以开启请求和响应的压缩功能。
    # 配置Feign
    feign:
      compression:
        request:
          enabled: true # 开启请求压缩
        response:
          enabled: true # 开启响应压缩
    
    • 同时,我们也可以对请求的数据类型以及触发压缩大小的下限进行设置:
    # 配置Feign
    feign:
      compression:
        request:
          enabled: true # 开启请求压缩
          min-request-size: 2048 # 设置触发压缩的大小下限
          mime-types: text/html,application/xml,application/json #设置压缩的数据类型
        response:
          enabled: true # 开启响应压缩
    

    3 日志级别

    • 在开发或者运行阶段的时候往往希望看到Feign请求过程的日志记录,默认情况下Feign的日志是没有开启的。如果想要属性配置方式来达到日志效果,只需要在application.yml中添加如下的内容即可:
    # 配置Feign
    feign:
      client:
        config:
          service-product: # 自定义FeignClient的名称
            # 配置Feign的日志级别
            loggerLevel: full
            
    logging:
      level:
        com.sunxiaping.order.feign.ProductFeignClient: debug # Feign日志只会对日志级别为debug做出响应
    
    • logging.level.xxx: debug:Feign日志只会对日志级别的debug做出响应。

    • feign.client.config.service-product.loggerLevel:默认Feign的日志级别有四种。

      • NONE(性能最佳,适用于生产):不记录任何日志(默认值)。
      • BASIC(适用于生产环境追踪问题):仅记录请求方法、URL、响应状态码以及执行时间。
      • HEADERS:记录BASIC级别的基础上,记录请求和响应的header。
      • FULL(比较适用于开发和测试环境定位问题):记录请求和响应的header、body和元数据。
    • 也可以使用配置Bean的方式开启所有的日志功能:

    @Configuration
    public class FeignConfiguration {
        @Bean
        Logger.Level feignLoggerLevel() {
            return Logger.Level.FULL;
        }
    }
    
  • 相关阅读:
    [JS11] 状态栏滚动
    [JS10] 获取时间
    [JS9] document's bgColor改变背景颜色
    [JS8] 显示从(0,0)到(0,0)的坐标
    [JS7] 显示从0到99的100个数字
    使用StringBuilder或StringBuffer简单优化
    启动一个线程的三种方法
    设置IE浏览器指定的功能
    jquery 判断元素是否存在于数组中
    Hibernate validator验证
  • 原文地址:https://www.cnblogs.com/xuweiweiwoaini/p/13764533.html
Copyright © 2011-2022 走看看