上一篇手动加载规则需要耗时90ms,考虑性能问题,提前初始化规则
package com.example.demo;
import com.alibaba.csp.sentinel.slots.block.RuleConstant;
import com.alibaba.csp.sentinel.slots.block.flow.FlowRule;
import com.alibaba.csp.sentinel.slots.block.flow.FlowRuleManager;
import java.util.ArrayList;
import java.util.List;
/**
* description
*
* @author xichengxml
* @date 2020-10-28 11:23:02
*/
public class SentinelUtils2 {
static {
List<FlowRule> flowRules = new ArrayList<>();
FlowRule flowRule = buildFlowRule("testQps");
flowRules.add(flowRule);
FlowRuleManager.loadRules(flowRules);
}
/**
* 空方法,用来触发加载类
*/
public static void load() {
}
private static FlowRule buildFlowRule(String key) {
FlowRule rule = new FlowRule();
rule.setResource(key);
rule.setGrade(RuleConstant.FLOW_GRADE_QPS);
// Set limit QPS to 20.
rule.setCount(20);
return rule;
}
}
上一篇的static代码块中模拟类加载