Feign的简介:
Feign是一个声明式的http客户端。作用就是帮助我们发送http请求。
Feign的使用:
1.引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2.在启动类上添加@EnableFeignClientd,目的是开启关于Feign的注解
3.定义和使用Feign客户端
这里的内容要跟被调用服务的Contorller中的一致。
Feign的日志级别的配置
1全局
feign:
client:
config:
default: #表示为全局配置
loggerLevel: FULL
2局部
efeign:
client:
config:
serverName: #表示为给指定的服务器配置日志级别
loggerLevl: FULL
Feign的性能优化
原因:Feign的底层实现默认不支持连接池的
日志级别最好用Basic或none
1.性能优化配置连接池
引入依赖
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-httpclient</artifactId>
</dependency>
配置连接池
feign:
client:
config:
default: #表示为全局配置
loggerLevel: BASIC # 日志级别,BASIC就是基本的请求和响应信息
httpclient:
enabled: true
max-connections: 200 # 最大的连接数
max-connections-per-route: 50 # 每个路径的最大连接数
Feign的实践方式
继承方式:给消费者的FeignClient和提供者的Controller定义统一的父接口作为标准。
抽取方式:将FeignClient抽取为独立的模块,并把接口有关的POJO、默认的Feign配置都放到这个模块中,提供给所有消费者使用。(主要)
注:抽取后,需要在启动类上添加@EnableFeignClients(basePackage=“包的位置”)