Springboot和SpringCloud的版本如下
xml
<dependencyManagement>
<dependencies>
<!--springboot 3.2.0-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--springcloud 2023.0.0-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2023.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
引入OpenFeign相关依赖
xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<!--负载均衡的依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
将服务注册到Nacos或Consul这些过程省略,下面介绍一下OpenFeign的高级用法
1. 日志打印
Feign 提供了日志打印功能,我们可以通过配置来调整日志级别,从而了解 Feign 中 Http 请求的细节,对Feign接口的调用情况进行监控和输出。
Feign的日志级别如下:
-
NONE:默认的,不显示任何日志;
-
BASIC:仅记录请求方法、URL、响应状态码及执行时间;
-
HEADERS:除了 BASIC 中定义的信息之外,还有请求和响应的头信息;
-
FULL:除了 HEADERS 中定义的信息之外,还有请求和响应的正文及元数据。

使用配置类设置日志级别
java
@Configuration
public class FeignConfig
{
@Bean
Logger.Level feignLoggerLevel() {
return Logger.Level.FULL;
}
}
并且在配置文件中设置日志打印级别
xml
# feign日志以什么级别监控哪个接口
logging:
level:
com:
test:
cloud:
apis:
PayFeignApi: debug # com.test.cloud.apis是Feign接口的包路径
2. 超时控制
在配置文件中配置Feign的连接超时时间和读取超时时间
连接超时时间是指,进行远程调用时和第三方接口建立连接的最长时间;
读取超时时间是指,请求到第三方接口后,等待获取响应结果的时间;
xml
spring:
cloud:
openfeign:
client:
config:
default:
connectTimeout: 3000 #连接超时时间
readTimeout: 3000 #读取超时时间
3. 重试机制
重试是指,在远程调用失败之后,再次进行调用,默认不进行重试
在配置类中进行配置
java
@Configuration
public class FeignConfig
{
@Bean
public Retryer myRetryer()
{
//return Retryer.NEVER_RETRY; //Feign默认配置是不走重试策略的
//最大请求次数为3(1+2),初始间隔时间为100ms,重试间最大间隔时间为1s
return new Retryer.Default(100,1,3);
}
}