学习spring cloud记录12-Feign常用自定义配置

前言

Feign被springboot自动装配,但是Feign也提供了可自定义修改配置,常用的修改是修改日志级别等,下面记录常用的配置。

知识

Feign常用自定义配置
类型 作用 说明
feign.Looger.Level 修改日志级别 包含不同的四种级别:NONE,BASIC,HEADERS,FULL
feign.codec.Decoder 响应结果解析器 HTTP远程调用的接口进行解析,列如解析json为对象
feign.codec.Encoder 请求参数编码 将请求参数编码,便于通过http请求发送
feign.Contract 支持注解格式 默认是SpringMVC注解
feign.Retryer 失败重试机制 请求失败后重试,默认不重试,但是底层依赖于ribbon,ribbon是有重试的

 

代码实现(修改级别)

方式一:基于配置文件

添加下列配置即可:

feign:
  client:
    config:
      default: #如果是default就是全局,如果是服务名,就是单独
        loogerLevel: FULL

 

方式二:基于java代码

声明一个类:

package priv.sinoam.demoorder.demo.config;

import feign.Logger;
import org.springframework.context.annotation.Bean;

public class FeignConfiguration {
    @Bean
    public Logger.Level logLevel(){
        return Logger.Level.BASIC;
    }
}

 

全局配置:

在启动类添加

@EnableFeignClients(defaultConfiguration = FeignConfiguration.class)

 

局部配置:

在客户端类添加

@FeignClient(value = "demo-user", configuration = FeignConfiguration.class)

Feign新能优化

Feign底层客户端的实现:

  • URLConnection:默认实现,不支持连接池
  • Apache HttpClient:支持连接池
  • OKHttp:支持连接池

Feign新能优化主要包括:

  • 使用连接池替代默认的URLConnection
  • 日志级别:最好使用basic或者none

实现

以HttpClient为例

引入依赖

        <dependency>
            <groupId>io.github.openfeign</groupId>
            <artifactId>feign-httpclient</artifactId>
        </dependency>

 

配置连接池

feign:
  httpclient:
    enabled: true # 支持httpClient 默认为true
    max-connections: 200 #最大连接数
    max-connections-per-route: 50 # 单个路径的最大连接数

 

问题

不管怎么配置,都没有打印日志,还没有找到解决办法

posted @ 2022-05-02 21:07  龙谷情Sinoam  阅读(294)  评论(0编辑  收藏  举报
Smiley face