学习spring cloud记录12-Feign常用自定义配置
前言
Feign被springboot自动装配,但是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 # 单个路径的最大连接数
问题
不管怎么配置,都没有打印日志,还没有找到解决办法
昔日我曾苍老,如今风华正茂(ง •̀_•́)ง