Sentinel 热点规则 授权规则

热点规则

热点规则可以根据传递的参数匹配屏蔽

在测试前我们先写一个接口 该接口可以传递两个参数

    @GetMapping("/hot")
    @SentinelResource("hot")
    public String hot(
            @RequestParam(value = "num1",required = false) Integer num1,
            @RequestParam(value = "num2",required = false) Integer num2){
        return num1 + "-" + num2;
    }

注意我们要先访问一次该接口 才能在sentinel那看到

配置热点规则

此时如果我们带第一个参数多次访问就会被限制

如果是第二个参数就不会被限制

授权规则

编写一个RequestOriginParser类

@Component
public class RequestOriginParserDefinition implements RequestOriginParser {
    @Override
    public String parseOrigin(HttpServletRequest httpServletRequest) {
        String name = httpServletRequest.getParameter("name");
        if(StringUtils.isEmpty(name)){
            throw new RuntimeException("name is null");
        }
        return name;
    }
}

现在访问接口都必须加上name参数
我们可以通过白名单设置什么name才能访问


而黑名单也很好理解 只有对应的name不能访问

posted @ 2021-11-01 20:56  一个经常掉线的人  阅读(129)  评论(0)    收藏  举报