alibaba / Sentinel

A powerful flow control component enabling reliability, resilience and monitoring for microservices. (面向云原生微服务的高可用流控防护组件)
https://sentinelguard.io/
Apache License 2.0
22.44k stars 8.03k forks source link

Spring Cloud Gateway 升级Sentinel版本后,一个资源配置了多条规则,其中一条规则触发熔断抛出异常后没有退出规则链,还会继续触发剩余的规则 #3432

Open Renwukun opened 4 months ago

Renwukun commented 4 months ago

升级前 版本是2021.0.0

升级后的的Sentinel版本

com.alibaba.cloud spring-cloud-starter-alibaba-sentinel 2023.0.1.2
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-alibaba-sentinel-gateway</artifactId>
        <version>2023.0.1.2</version>

新版本jdk1.8不支持,也同步升级jdk到17了

同一个资源配置了【限流规则】、【授权规则】、【自定义的规则】 【授权规则】 抛出指定的AuthorityException后,没有跳出规则链,还会继续流转到【自定义规则】。

【授权规则】 for (AuthorityRule rule : rules) { if (!AuthorityRuleChecker.passCheck(rule, context)) { // 此处会抛出异常 throw new AuthorityException(context.getOrigin(), rule); } }

【自定义的规则】是参考授权规则写的,通过SPI实现

这个问题是因为什么导致的呢?