一、Feign 快速入门
RestTemplate方式调用存在的问题
Feign 介绍
Feign是一个声明式的http客户端,其作用就是帮助我们优雅的实现http请求的发送,解决上面提到的问题。
Feign的使用步骤
(1)引入依赖
(2)添加@EnableFeignClients 注解
(3)编写FeignClient接口
(4)使用FeignClient中定义的方法代替RestTemplate
二、自定义 Feign 的配置
配置Feign 日志有两种方式:
方式一:配置文件方式
方式二:java代码方式
总结:
Feign的日志配置:
(1)方式一是配置文件,feign.client.config.xxx.loggerLevel
如果xxx是default则代表全局
如果xxx是服务名称,例如userservice则代表某服务
(2)方式二是java代码配置Logger.Level这个Bean
如果在@EnableFeignClients 注解声明则代表全局
如果在@FeignClient 注解中声明则代表某服务
三、 Feign 的性能优化
Feign 底层的客户端实现:
(1)URLConnection:默认实现,不支持连接池
(2)Apache HttpClient:支持连接池
(3)OKHttp:支持连接池
优化Feign 的性能:
(1)使用连接池代替默认的URLConnection
(2)日志级别,最好用basic 或none
四、Feign的最佳实践
(1)让controller和FeignClient继承同一接口
(2)将FeignClient、POJO、Feign的默认配置都定义到一个项目中,供所有消费者使用
方式二实践
不同包的FeignClient 的导入有两种方式:
(1)在@EnableFeignClients 注解中添加basePackages,指定FeignClient 所在的包
(2)在@EnableFeignClients 注解中添加clients,指定具体FeignClient 的字节码