1.Feign性能优化
Feign底层发起http请求,依赖于其它的框架。其底层客户端实现包括:
•URLConnection:默认实现,不支持连接池
•Apache HttpClient :支持连接池
•OKHttp:支持连接池
优化1:因此提高Feign的性能主要手段就是使用**连接池**代替默认的URLConnection。
优化2:日志的级别,根据项目测试,确定最大连接数 和 单个路径的最大连接数,日志 尽量用 basic
引入连接池依赖
!--httpClient的依赖 feign性能优化-->
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-httpclient</artifactId>
</dependency>
在YML文件配置
feign:
httpclient:
enabled: true #支持httpclient的开关
max-connections: 200 #最大连接数
max-connections-per-route: 50 #单个路径的最大连接数
2.最佳实践
可以用继承,在POM引入依赖,由于继承耦合度太高,使用引入依赖方式
1.新建Maven模块
添加Feign依赖
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-httpclient</artifactId>
</dependency>
把实体类,FeignClient类加入 删除原模块重复内容,
添加
//添加注解,指定服务名称,yml名称
@FeignClient("user")
public interface FiegnConfiguration {
@GetMapping("/user/id?id={ied}")
User getUser(@PathVariable("ied") Long id);
@PostMapping("/user/name")
name getname(name name);
}
引入自定义api-->
<dependency>
<groupId>cn.itcast.demo</groupId>
<artifactId>feign-api</artifactId>
<version>1.0</version>
</dependency>