问题背景
这两天在学习spring cloud sentinel,了解到定义流控规则有几个方式:
方式1:sentinel-dashboard配置流控规则;(规则在内存中)
方式2:使用nacos管理定义规则的配置文件;(规则可持久化)
方式3:可在代码中初始化各种规则,如FlowRule。
我本地尝试了前两种都没有问题,网上查了一下,但是用第三种方式定义的时候不生效,不知道问题在哪?
问题相关代码
@Component
public class FlowRules {
@PostConstruct
private void initFlowQpsRule(){
List<FlowRule> rules = new ArrayList<>();
FlowRule rule =new FlowRule("test");
rule.setControlBehavior(0);
rule.setGrade(RuleConstant.FLOW_GRADE_QPS);
rule.setCount(10);
rule.setStrategy(0);
rule.setClusterMode(false);
rule.setLimitApp("default");
FlowRuleManager.loadRules(rules);
}
}
运行结果及报错内容
启动服务后,在sentinel-dashboard看不到我定义的流控规则,测试也没有起到流控的效果,无报错信息。
我的解答思路和尝试过的方法
查了下网上都是提供我贴的代码这种方式,没看到还有其他思路,不知道是不是少配置了什么东西还是配置方法就错了。
我想要达到的结果
希望能在代码中定义流控规则或其他规则,并能在dashboard中看到定义的规则,规则能够生效。