feign使用

1. feign 日志

1. 配置方式

  1. 基于配置文件修改feign的日志级别可以针对单个服务
1
2
3
4
5
feign:  
client:
config:
userservice: # 针对某个微服务的配置
loggerLevel: FULL # 日志级别
  1. 针对所有服务
1
2
3
4
5
feign:  
client:
config:
default: # 这里用default就是全局配置,如果是写服务名称,则是针对某个微服务的配置
loggerLevel: FULL # 日志级别

2. java 代码方式

1
2
3
4
5
6
public class DefaultFeignConfiguration  {
@Bean
public Logger.Level feignLogLevel(){
return Logger.Level.BASIC; // 日志级别为BASIC
}
}
  1. 全局
1
@EnableFeignClients(defaultConfiguration = DefaultFeignConfiguration.class)
  1. 局部
1
@FeignClient(value = "userservice", configuration = DefaultFeignConfiguration .class)

3. 支持httpClient

1
2
3
4
5
<!--httpClient的依赖 -->
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-httpclient</artifactId>
</dependency>
1
2
3
4
5
6
7
8
9
feign:
client:
config:
default: # default全局的配置
loggerLevel: BASIC # 日志级别,BASIC就是基本的请求和响应信息
httpclient:
enabled: true # 开启feign对HttpClient的支持
max-connections: 200 # 最大的连接数
max-connections-per-route: 50 # 每个路径的最大连接数

4. FeignClient整合Sentinel

1
2
3
feign:
sentinel:
enabled: true # 开启feign对sentinel的支持

5. feign 降级

  • FallbackClass无法对远程调用的异常做处理
  • FallbackFactory,可以对远程调用的异常做处理