Feign是代替RestTemplate进行http请求的。

定义和使用 Feign 客户端:
1 引入依赖:
org.springframework.cloud
spring-cloud-starter-openfeign
2. 在 order-service 的启动类添加注解开启 Feign 的功能:

3 编写 Feign 客户端:

4在orderservice中调用feign:

5 自定义feign的配置
Feign 的日志配置 :
- 方式一是配置文
件, feign.client.config.xxx.loggerLevel
①如果 xxx 是 default 则代表全局
②如果 xxx 是服务名称,例如 userservice 则代表某服务 - 方式二是 java 代码配置 Logger.Level 这个 Bean
①如果在 @EnableFeignClients 注解声明则代表全局
②如果在 @FeignClient 注解中声明则代表某服务



6 feign的性能优化:
Feign 的日志配置 :
- 方式一是配置文
件, feign.client.config.xxx.loggerLevel
①如果 xxx 是 default 则代表全局
②如果 xxx 是服务名称,例如 userservice 则代表某服务 - 方式二是 java 代码配置 Logger.Level 这个 Bean
①如果在 @EnableFeignClients 注解声明则代表全局
②如果在 @FeignClient 注解中声明则代表某服务
Feign 的性能优化 - 连接池配置:
引入依赖:
io.github.openfeign
feign-httpclient
配置连接池:

7Feign 的最佳实践:


抽取FeignClient的步骤:
- 首先创建一个 module ,命名为 feign-api ,然后引入 feign 的 starter 依赖
- 将 order-service 中编写的 UserClient 、 User 、 DefaultFeignConfiguration 都复制到 feign-api 项目中
- 在 order-service 中引入 feign-api 的依赖
- 修改 order-service 中的所有与上述三个组件有关的 import 部分,改成导入 feign-api 中的包
- 重启测试

