ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

服务调用Feign高级

2020-09-27 11:32:11  阅读:145  来源: 互联网

标签:feign 调用 请求 压缩 配置 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

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和元数据。

标签:feign,调用,请求,压缩,配置,Feign,高级,日志
来源: https://www.cnblogs.com/xuweiweiwoaini/p/13738446.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有