日志优化
创建一个@Feign的配置类
import feign.Logger;
import org.springframework.context.annotation.Bean;
public class FeignClientConfiguration {
@Bean
public Logger.Level feignLogLevel(){
return Logger.Level.BASIC;
}
}
加载该配置,分为两种情况,
(1)单独给某个@Feign的类加配置
@FeignClient(value = "xxxxservice",configuration = FeignClientConfiguration.class)
(2)给全局加配置
@EnableFeignClients(defaultConfiguration = FeignClientConfiguration.class)
性能优化
@Feign就是一个http请求,默认为短连接,每请求一次就建立一次连接,很耗时。
优化点1就是将短连接改为长连接。
引入长连接依赖
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-httpclient</artifactId>
</dependency>
优化点2就是多加一些机器,多启动一些服务,用负载均衡
根据实际服务数量及网络环境等情况对配置文件进行配置最大连接数进行配置
feign:
client:
config:
default: # default全局的配置
loggerLevel: BASIC # 日志级别,BASIC就是基本的请求和响应信息
httpclient:
enabled: true # 开启feign对HttpClient的支持
max-connections: 200 # 最大的连接数
max-connections-per-route: 50 # 每个路径的最大连接数
代码优化
由于@Feign的定义偏向服务方,也就是服务方更加熟悉接口内容和情况,对于@Feign的配置把握更好,建议由服务方提供一套feign的模块代码,提供给消费端直接使用。
如果启动报错,找不到@Feign的客户端,可能spring启动没有扫描到,可通过如下注解进行指示。
@EnableFeignClients(basePackages = "com.example.feign")