注:仅供自己学习记录
能干啥?
流量控制、熔断降级、系统保护
基本概念
资源:只要通过Sentinel API定义的代码,就是资源。
规则:围绕资源的实时状态设定的规则,流控、熔断降级、系统保护规则等。
组成
核心库:不依赖任何框架,运行于Java8及以上版本。
控制台:管理推送规则、监控、管理机器信息等。
快速开始
1、引入依赖
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-core</artifactId>
<version>1.8.6</version>
</dependency>
2、定义资源
public static void main(String[] args) {
// 配置规则.
initFlowRules();
while (true) {
// 1.5.0 版本开始可以直接利用 try-with-resources 特性
try (Entry entry = SphU.entry("HelloWorld")) {
// 被保护的逻辑
System.out.println("hello world");
} catch (BlockException ex) {
// 处理被流控的逻辑
System.out.println("blocked!");
}
}
}
3、定义规则(写在哪儿?)
private static void initFlowRules(){
List<FlowRule> rules = new ArrayList<>();
FlowRule rule = new FlowRule();
rule.setResource("HelloWorld");
rule.setGrade(RuleConstant.FLOW_GRADE_QPS);
// Set limit QPS to 20.
rule.setCount(20);
rules.add(rule);
FlowRuleManager.loadRules(rules);
}
4、启动Sentinel控制台
点击:获取控制台jar
启动命令:java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar
默认用户名和密码都是 sentinel
5、客户端接入到控制台
添加依赖
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-transport-simple-http</artifactId>
<version>1.8.6</version>
</dependency>
配置启动参数
启动时加入 JVM 参数 -Dcsp.sentinel.dashboard.server=consoleIp:port 指定控制台地址和端口,多个应用需要通过-Dcsp.sentinel.api.port=xxxx 指定客户端监控 API 的端口(默认是 8719)。
剩下就是关于对控制台的使用介绍了,看官网:sentinelguard.io/zh-cn/docs/…