com.alibaba.csp.sentinel.slots.block.flow.FlowException: null--记录一次报错

阿丹:

记录一次开发中遇到的错误。

报错信息描述:

复制代码
2023-10-01 09:47:57.263 ERROR 39572 --- [nio-9100-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.reflect.UndeclaredThrowableException] with root cause

com.alibaba.csp.sentinel.slots.block.flow.FlowException: null

问题出现场景:

因为我是开发后端嘛,使用Sentinel的注解来给我的接口做了一下限流,限流的效果是正常的,但是发现我的回调函数并不能正常被触发。

问题出现原因:

根据错误信息来看,这是一个com.alibaba.csp.sentinel.slots.block.flow.FlowException异常。该异常通常由流控规则引起,表示请求被阻塞或限流了。

要解决这个问题,你可以考虑以下几个方面:

  1. 检查流控规则:检查Sentinel的流控规则是否正确配置并能够满足你的需求。确保规则没有过于严格的限制导致请求被拒绝。

  2. 检查资源使用情况:查看应用程序的资源使用情况,特别是在流控发生时。如果资源使用过高,可以考虑优化代码或增加资源容量来避免流控。

  3. 检查Sentinel配置:确保Sentinel的相关配置正确无误。例如,检查Sentinel的配置文件是否正确加载,规则是否生效等。

解决方式:

1、回调函数的参数要与被限流的参数保持一致,并且接口的后面添加一个参数。

2、要保证限流的回调函数的返回值与被限流的接口保持一致

正确的代码

java 复制代码
@SentinelResource(value = "findByUsername" ,blockHandler = "blockHandlerForGetUser")
    @GetMapping("/findByUsername/{username}")
    public User findByUsername(@PathVariable String username){
        return service.findByUsername(username);
    }

    public User blockHandlerForGetUser(@PathVariable String username, BlockException blockException){
        User user = new User();
        user.setUsername("限流统一返回类");
        return user;
    }
相关推荐
@HNUSTer16 小时前
基于 GEE 的 Sentinel-2 光谱、指数、纹理特征提取与 Sentinel-1 SAR 数据处理
云计算·sentinel·数据集·遥感大数据·gee·云平台·sar
@HNUSTer4 天前
基于 GEE 平台用 Sentinel-1 SAR 数据实现山区潜在滑坡检测
云计算·sentinel·数据集·遥感大数据·gee·云平台·sar
还是鼠鼠6 天前
《黑马商城》微服务保护-详细介绍【简单易懂注释版】
java·spring boot·spring·spring cloud·sentinel·maven
月夕·花晨9 天前
Gateway-过滤器
java·分布式·spring·spring cloud·微服务·gateway·sentinel
非凡ghost11 天前
Hard Disk Sentinel(固态硬盘监控) 多语便携版
windows·sentinel·软件需求
柳贯一(逆流河版)14 天前
Sentinel 深度解析:限流与熔断降级的微服务稳定性保障实践
微服务·架构·sentinel
耳东哇14 天前
sentinel docker gateway k8s 集群 主从
docker·gateway·sentinel
遥感之家15 天前
AWS下载sentinel-2原始影像
云计算·sentinel·aws
月夕·花晨16 天前
Gateway-断言
java·开发语言·分布式·spring cloud·微服务·nacos·sentinel
齐 飞17 天前
Spring Cloud Alibaba快速入门-Sentinel熔断规则
spring boot·spring cloud·sentinel