Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
有来技术
youlai-mall
提交
d1e26133
Y
youlai-mall
项目概览
有来技术
/
youlai-mall
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Y
youlai-mall
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d1e26133
编写于
4月 23, 2021
作者:
H
haoxr
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat:整合Sentinel降级
上级
8ba53cb6
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
29 addition
and
6 deletion
+29
-6
youlai-admin/admin-boot/src/main/java/com/youlai/admin/controller/UserController.java
...main/java/com/youlai/admin/controller/UserController.java
+5
-1
youlai-admin/admin-boot/src/main/java/com/youlai/admin/handler/DefaultBlockExceptionHandler.java
...om/youlai/admin/handler/DefaultBlockExceptionHandler.java
+5
-2
youlai-admin/admin-boot/src/main/java/com/youlai/admin/handler/UserBlockHandler.java
.../main/java/com/youlai/admin/handler/UserBlockHandler.java
+16
-0
youlai-admin/admin-boot/src/main/resources/bootstrap-dev.yml
youlai-admin/admin-boot/src/main/resources/bootstrap-dev.yml
+2
-2
youlai-common/common-core/src/main/java/com/youlai/common/result/ResultCode.java
...re/src/main/java/com/youlai/common/result/ResultCode.java
+1
-1
未找到文件。
youlai-admin/admin-boot/src/main/java/com/youlai/admin/controller/UserController.java
浏览文件 @
d1e26133
...
...
@@ -2,11 +2,13 @@ package com.youlai.admin.controller;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
com.alibaba.csp.sentinel.annotation.SentinelResource
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.youlai.admin.common.enums.PermTypeEnum
;
import
com.youlai.admin.handler.UserBlockHandler
;
import
com.youlai.admin.pojo.entity.SysUser
;
import
com.youlai.admin.pojo.entity.SysUserRole
;
import
com.youlai.admin.pojo.dto.UserDTO
;
...
...
@@ -166,7 +168,9 @@ public class UserController extends BaseController {
}
@ApiOperation
(
value
=
"获取当前用户信息"
)
@ApiOperation
(
value
=
"获取当前登陆的用户信息"
)
@SentinelResource
(
value
=
"getCurrentUser"
,
blockHandlerClass
=
UserBlockHandler
.
class
,
blockHandler
=
"handleGetCurrentUserBlock"
)
@GetMapping
(
"/me"
)
public
Result
<
UserVO
>
getCurrentUser
()
{
UserVO
userVO
=
new
UserVO
();
...
...
youlai-admin/admin-boot/src/main/java/com/youlai/admin/
component/Custom
BlockExceptionHandler.java
→
youlai-admin/admin-boot/src/main/java/com/youlai/admin/
handler/Default
BlockExceptionHandler.java
浏览文件 @
d1e26133
package
com.youlai.admin.
component
;
package
com.youlai.admin.
handler
;
import
com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.BlockExceptionHandler
;
import
com.alibaba.csp.sentinel.slots.block.BlockException
;
import
com.alibaba.csp.sentinel.slots.block.degrade.DegradeException
;
import
com.alibaba.csp.sentinel.slots.block.flow.FlowException
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.youlai.common.result.Result
;
...
...
@@ -18,7 +19,7 @@ import javax.servlet.http.HttpServletResponse;
* @createTime 2021/4/12 22:57
*/
@Component
public
class
Custom
BlockExceptionHandler
implements
BlockExceptionHandler
{
public
class
Default
BlockExceptionHandler
implements
BlockExceptionHandler
{
@Override
public
void
handle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
BlockException
e
)
throws
Exception
{
...
...
@@ -31,6 +32,8 @@ public class CustomBlockExceptionHandler implements BlockExceptionHandler {
if
(
e
instanceof
FlowException
){
// objectMapper.writeValue 用于将java对象转位JSON格式返回调用方
objectMapper
.
writeValue
(
response
.
getWriter
(),
Result
.
failed
(
ResultCode
.
FLOW_LIMITING
));
}
else
if
(
e
instanceof
DegradeException
){
objectMapper
.
writeValue
(
response
.
getWriter
(),
Result
.
failed
(
ResultCode
.
DEGRADATION
));
}
}
}
youlai-admin/admin-boot/src/main/java/com/youlai/admin/handler/UserBlockHandler.java
0 → 100644
浏览文件 @
d1e26133
package
com.youlai.admin.handler
;
import
com.alibaba.csp.sentinel.slots.block.BlockException
;
import
com.youlai.admin.pojo.vo.UserVO
;
import
com.youlai.common.result.Result
;
/**
* @author haoxr
* @description TODO
* @createTime 2021/4/23 23:30
*/
public
class
UserBlockHandler
{
public
static
Result
<
UserVO
>
handleGetCurrentUserBlock
(
BlockException
blockException
)
{
return
Result
.
success
(
new
UserVO
());
}
}
youlai-admin/admin-boot/src/main/resources/bootstrap-dev.yml
浏览文件 @
d1e26133
...
...
@@ -26,11 +26,11 @@ spring:
groupId
:
SENTINEL_GROUP
data-type
:
json
rule-type
:
flow
#
限流规则,flow为key,随便定义
#
降级规则
degrade
:
nacos
:
server-addr
:
${spring.cloud.nacos.discovery.server-addr}
dataId
:
${spring.application.name}-
flow
-rules
dataId
:
${spring.application.name}-
degrade
-rules
groupId
:
SENTINEL_GROUP
data-type
:
json
rule-type
:
degrade
youlai-common/common-core/src/main/java/com/youlai/common/result/ResultCode.java
浏览文件 @
d1e26133
...
...
@@ -49,7 +49,7 @@ public enum ResultCode implements IResultCode, Serializable {
SYSTEM_DISASTER_RECOVERY_TRIGGER
(
"B0200"
,
"系统容灾功能被出发"
),
FLOW_LIMITING
(
"B0210"
,
"系统限流"
),
SYSTEM_FUNCTION_
DEGRADATION
(
"B0220"
,
"系统功能降级"
),
DEGRADATION
(
"B0220"
,
"系统功能降级"
),
SYSTEM_RESOURCE_ERROR
(
"B0300"
,
"系统资源异常"
),
SYSTEM_RESOURCE_EXHAUSTION
(
"B0310"
,
"系统资源耗尽"
),
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录