前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring Cloud Alibaba - 14 OpenFeign自定义配置 + 调用优化 + 超时时间

Spring Cloud Alibaba - 14 OpenFeign自定义配置 + 调用优化 + 超时时间

作者头像
小小工匠
发布2022-02-04 15:18:08
1.3K0
发布2022-02-04 15:18:08
举报
文章被收录于专栏:小工匠聊架构小工匠聊架构

文章目录

打印Feign调用日志

默认情况下,Feign的调用式不打印日志,我们需要通过自定义来打印我们的Feign的日志, 生产环境推荐basic

日志级别

级别

输出内容

NONE(默认)

不记录任何信息

BASIC

仅记录请求方法、URL、响应状态和执行时间

HEADERS

在BASIC基础上,记录请求和响应的HEADER

FULL

记录请求和响应的HEADER、BODY和元数据

?

三部曲

step1 添加Feign的自定义配置

子模块 artisan-feign-api 增加 配置

代码语言:javascript
复制
import feign.Logger;
import org.springframework.context.annotation.Bean;

/**
 * @author 小工匠
 * @version 1.0
 * @description:   千万不要添加@Configuration,不然会被作为全局配置文件共享
 * @date 2022/2/3 22:19
 * @mark: show me the code , change the world
 */


public class ProductCenterFeignConfig {


    @Bean
    public Logger.Level level(){
        return Logger.Level.BASIC;
    }
}

千万不要添加@Configuration,不然会被作为全局配置文件共享

step2 声明式接口指定配置

子模块 artisan-feign-api

Step3 声明式接口包日志级别调整为DEBUG

接口调用方 artisan-cloud-feign-order 的 application.yml

代码语言:javascript
复制
# 子模块下的声明式接口包 日志级别必须是debug ,不然不打印日志
logging:
  level:
    com:
      artisan:
        feignapi: debug

验证

启动两个服务,访问 http://localhost:8080/selectOrderInfoById/1

观察order的日志

基于yml文件细粒度配置日志

调用方配置yml

在调用方artisan-cloud-feign-order ,通过feign:client:config:微服务名称:loggerLevel: 日志级别来指定

代码语言:javascript
复制
# 基于yml文件细粒度配置 - 通过feign:client:config:微服务名称:loggerLevel日志级别来指定
feign:
  client:
    config:
      artisan-product-center:
        loggerLevel: full

支持配置多个

我们再来个 artisan-cloud-feign-pay 服务验证下

验证

启动服务,分别访问接口,观察日志

使用Feign原生的注解配置

根据自动装配我们FeignClients的配置中的默认锲约是springmvc , 如果需要修改的话,修改契约即可(使用Feign原生的API)

用的较少, 这里就不演示了。

拦截器的应用配置

Spring Cloud Alibaba - 15 微服务之间使用Feign实现参数的透传

Feign调用优化方案

Step 1 开启连接池配置

Step 2 调整Feign的日志级别(强烈推荐使用Basic级别的)

方法见上文

Feign的生产实践 (Feign的超时为准)

Feign的底层用的是Ribbon,那么我们怎么配置超时时间呢?

我们来测试下

服务方模拟响应过长

超时设置

验证

那如果我们换一下呢 (Ribbon 设置 5秒, Feign设置2秒 , Product仍然休眠3秒) 。看下什么情况

测试一下看看呢

源码

https://github.com/yangshangwei/SpringCloudAlibabMaster

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-02-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 打印Feign调用日志
    • 日志级别
      • 三部曲
        • step1 添加Feign的自定义配置
        • step2 声明式接口指定配置
        • Step3 声明式接口包日志级别调整为DEBUG
      • 验证
      • 基于yml文件细粒度配置日志
        • 调用方配置yml
          • 验证
          • 使用Feign原生的注解配置
          • 拦截器的应用配置
          • Feign调用优化方案
            • Step 1 开启连接池配置
              • Step 2 调整Feign的日志级别(强烈推荐使用Basic级别的)
              • Feign的生产实践 (Feign的超时为准)
                • 服务方模拟响应过长
                  • 超时设置
                    • 验证
                    • 源码
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
                    http://www.vxiaotou.com