# Conflicts:
#	yudao-dependencies/pom.xml
#	yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/handler/GlobalExceptionHandler.java
This commit is contained in:
YunaiV 2024-04-10 20:58:35 +08:00
commit cc9b2e86b6
18 changed files with 1 additions and 90 deletions

View File

@ -35,12 +35,6 @@
<artifactId>lock4j-redisson-spring-boot-starter</artifactId> <artifactId>lock4j-redisson-spring-boot-starter</artifactId>
<optional>true</optional> <optional>true</optional>
</dependency> </dependency>
<dependency>
<groupId>io.github.resilience4j</groupId>
<artifactId>resilience4j-spring-boot2</artifactId>
<optional>true</optional>
</dependency>
</dependencies> </dependencies>
</project> </project>

View File

@ -1,9 +0,0 @@
/**
* 使用 Resilience4j 组件实现服务保障包括
* 1. 熔断器
* 2. 限流器
* 3. 舱壁隔离
* 4. 重试
* 5. 限时器
*/
package cn.iocoder.yudao.framework.resilience4j;

View File

@ -181,14 +181,6 @@ public class GlobalExceptionHandler {
return CommonResult.error(METHOD_NOT_ALLOWED.getCode(), String.format("请求方法不正确:%s", ex.getMessage())); return CommonResult.error(METHOD_NOT_ALLOWED.getCode(), String.format("请求方法不正确:%s", ex.getMessage()));
} }
/**
* 处理 Resilience4j 限流抛出的异常
*/
public CommonResult<?> requestNotPermittedExceptionHandler(HttpServletRequest req, Throwable ex) {
log.warn("[requestNotPermittedExceptionHandler][url({}) 访问过于频繁]", req.getRequestURL(), ex);
return CommonResult.error(TOO_MANY_REQUESTS);
}
/** /**
* 处理 Spring Security 权限不足的异常 * 处理 Spring Security 权限不足的异常
* *
@ -223,12 +215,7 @@ public class GlobalExceptionHandler {
return tableNotExistsResult; return tableNotExistsResult;
} }
// 情况二部分特殊的库的处理 // 情况二处理异常
if (Objects.equals("io.github.resilience4j.ratelimiter.RequestNotPermitted", ex.getClass().getName())) {
return requestNotPermittedExceptionHandler(req, ex);
}
// 情况三处理异常
log.error("[defaultExceptionHandler]", ex); log.error("[defaultExceptionHandler]", ex);
// 插入异常日志 // 插入异常日志
this.createExceptionLog(req, ex); this.createExceptionLog(req, ex);

View File

@ -32,8 +32,6 @@ mybatis-plus:
# Lock4j 配置项(单元测试,禁用 Lock4j # Lock4j 配置项(单元测试,禁用 Lock4j
# Resilience4j 配置项
--- #################### 监控相关配置 #################### --- #################### 监控相关配置 ####################
--- #################### 芋道相关配置 #################### --- #################### 芋道相关配置 ####################

View File

@ -38,8 +38,6 @@ mybatis-plus:
# Lock4j 配置项(单元测试,禁用 Lock4j # Lock4j 配置项(单元测试,禁用 Lock4j
# Resilience4j 配置项
--- #################### 监控相关配置 #################### --- #################### 监控相关配置 ####################
--- #################### 芋道相关配置 #################### --- #################### 芋道相关配置 ####################

View File

@ -38,8 +38,6 @@ mybatis-plus:
# Lock4j 配置项(单元测试,禁用 Lock4j # Lock4j 配置项(单元测试,禁用 Lock4j
# Resilience4j 配置项
--- #################### 监控相关配置 #################### --- #################### 监控相关配置 ####################
--- #################### 芋道相关配置 #################### --- #################### 芋道相关配置 ####################

View File

@ -38,8 +38,6 @@ mybatis-plus:
# Lock4j 配置项(单元测试,禁用 Lock4j # Lock4j 配置项(单元测试,禁用 Lock4j
# Resilience4j 配置项
--- #################### 监控相关配置 #################### --- #################### 监控相关配置 ####################
--- #################### 芋道相关配置 #################### --- #################### 芋道相关配置 ####################

View File

@ -37,8 +37,6 @@ mybatis:
# Lock4j 配置项(单元测试,禁用 Lock4j # Lock4j 配置项(单元测试,禁用 Lock4j
# Resilience4j 配置项
--- #################### 监控相关配置 #################### --- #################### 监控相关配置 ####################
--- #################### 芋道相关配置 #################### --- #################### 芋道相关配置 ####################

View File

@ -37,8 +37,6 @@ mybatis:
# Lock4j 配置项(单元测试,禁用 Lock4j # Lock4j 配置项(单元测试,禁用 Lock4j
# Resilience4j 配置项
--- #################### 监控相关配置 #################### --- #################### 监控相关配置 ####################
--- #################### 芋道相关配置 #################### --- #################### 芋道相关配置 ####################

View File

@ -37,8 +37,6 @@ mybatis:
# Lock4j 配置项(单元测试,禁用 Lock4j # Lock4j 配置项(单元测试,禁用 Lock4j
# Resilience4j 配置项
--- #################### 监控相关配置 #################### --- #################### 监控相关配置 ####################
--- #################### 芋道相关配置 #################### --- #################### 芋道相关配置 ####################

View File

@ -70,16 +70,6 @@ mybatis-plus:
# Lock4j 配置项(单元测试,禁用 Lock4j # Lock4j 配置项(单元测试,禁用 Lock4j
# Resilience4j 配置项
resilience4j:
ratelimiter:
instances:
backendA:
limit-for-period: 1 # 每个周期内,允许的请求数。默认为 50
limit-refresh-period: 60s # 每个周期的时长,单位:微秒。默认为 500
timeout-duration: 1s # 被限流时,阻塞等待的时长,单位:微秒。默认为 5s
register-health-indicator: true # 是否注册到健康监测
--- #################### 监控相关配置 #################### --- #################### 监控相关配置 ####################
--- #################### 芋道相关配置 #################### --- #################### 芋道相关配置 ####################

View File

@ -37,8 +37,6 @@ mybatis:
# Lock4j 配置项(单元测试,禁用 Lock4j # Lock4j 配置项(单元测试,禁用 Lock4j
# Resilience4j 配置项
--- #################### 监控相关配置 #################### --- #################### 监控相关配置 ####################
--- #################### 芋道相关配置 #################### --- #################### 芋道相关配置 ####################

View File

@ -38,8 +38,6 @@ mybatis:
# Lock4j 配置项(单元测试,禁用 Lock4j # Lock4j 配置项(单元测试,禁用 Lock4j
# Resilience4j 配置项
--- #################### 监控相关配置 #################### --- #################### 监控相关配置 ####################
--- #################### 芋道相关配置 #################### --- #################### 芋道相关配置 ####################

View File

@ -74,16 +74,6 @@ mybatis:
# Lock4j 配置项(单元测试,禁用 Lock4j # Lock4j 配置项(单元测试,禁用 Lock4j
# Resilience4j 配置项
resilience4j:
ratelimiter:
instances:
backendA:
limit-for-period: 1 # 每个周期内,允许的请求数。默认为 50
limit-refresh-period: 60s # 每个周期的时长,单位:微秒。默认为 500
timeout-duration: 1s # 被限流时,阻塞等待的时长,单位:微秒。默认为 5s
register-health-indicator: true # 是否注册到健康监测
--- #################### 监控相关配置 #################### --- #################### 监控相关配置 ####################
--- #################### 芋道相关配置 #################### --- #################### 芋道相关配置 ####################

View File

@ -38,8 +38,6 @@ mybatis:
# Lock4j 配置项(单元测试,禁用 Lock4j # Lock4j 配置项(单元测试,禁用 Lock4j
# Resilience4j 配置项
--- #################### 监控相关配置 #################### --- #################### 监控相关配置 ####################
--- #################### 芋道相关配置 #################### --- #################### 芋道相关配置 ####################

View File

@ -117,16 +117,6 @@ lock4j:
acquire-timeout: 3000 # 获取分布式锁超时时间,默认为 3000 毫秒 acquire-timeout: 3000 # 获取分布式锁超时时间,默认为 3000 毫秒
expire: 30000 # 分布式锁的超时时间,默认为 30 毫秒 expire: 30000 # 分布式锁的超时时间,默认为 30 毫秒
# Resilience4j 配置项
resilience4j:
ratelimiter:
instances:
backendA:
limit-for-period: 1 # 每个周期内,允许的请求数。默认为 50
limit-refresh-period: 60s # 每个周期的时长,单位:微秒。默认为 500
timeout-duration: 1s # 被限流时,阻塞等待的时长,单位:微秒。默认为 5s
register-health-indicator: true # 是否注册到健康监测
--- #################### 监控相关配置 #################### --- #################### 监控相关配置 ####################
# Actuator 监控端点的配置项 # Actuator 监控端点的配置项

View File

@ -135,16 +135,6 @@ lock4j:
acquire-timeout: 3000 # 获取分布式锁超时时间,默认为 3000 毫秒 acquire-timeout: 3000 # 获取分布式锁超时时间,默认为 3000 毫秒
expire: 30000 # 分布式锁的超时时间,默认为 30 毫秒 expire: 30000 # 分布式锁的超时时间,默认为 30 毫秒
# Resilience4j 配置项
resilience4j:
ratelimiter:
instances:
backendA:
limit-for-period: 1 # 每个周期内,允许的请求数。默认为 50
limit-refresh-period: 60s # 每个周期的时长,单位:微秒。默认为 500
timeout-duration: 1s # 被限流时,阻塞等待的时长,单位:微秒。默认为 5s
register-health-indicator: true # 是否注册到健康监测
--- #################### 监控相关配置 #################### --- #################### 监控相关配置 ####################
# Actuator 监控端点的配置项 # Actuator 监控端点的配置项