Sentinel学习日记:快速入门篇

81 阅读1分钟

注:仅供自己学习记录

能干啥?

流量控制、熔断降级、系统保护

基本概念

资源:只要通过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/…