概述
Sentinel控制台是一个直观的观察Sentinel运行状态以及实时动态各资源管理web控制台,Sentinel控制台提供两种,分别是本地控制台和公网控制台
本地控制台
本地控制台适用于局域网和小型网络以及自架构的网络结构中
快速开始
一、引入Sentinel依赖
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-core</artifactId>
<version>1.7.2</version>
</dependency>
二、定义资源
@SentinelResource("TestServiceImpl.test1")
public String test1(String s) {
log.debug(s);
return s + " ;test1";
}
三、配置限流规则
@Bean
public ApplicationRunner runListener() {
return args -> {
// 定义流量规则
List<FlowRule> flowRules = new ArrayList<>();
FlowRule flowRule = new FlowRule("TestServiceImpl.test1");
flowRule.setGrade(RuleConstant.FLOW_GRADE_QPS);
flowRule.setCount(1);
flowRules.add(flowRule);
// 添加限流规则
FlowRuleManager.loadRules(flowRules);
log.debug("配置限流规则成功");
};
}
四、启动sentinel控制台
启动控制台
java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar
启动参数配置
启动Sentinel需要对启动配置需要进行一些配置,我们可以通过JAVA VM参数配置以及配置文件(1.7.0以上)配置
其中,project.name
参数只能通过 JVM -D 参数方式配置,其它参数支持所有的配置方式
优先级顺序:JVM -D 参数的优先级最高。若 properties 和 JVM 参数中有相同项的配置,以 JVM 参数配置的为准。
用户可以通过 -Dcsp.sentinel.config.file
参数配置 properties 文件的路径,支持 classpath 路径配置(如 classpath:sentinel.properties
)。默认 Sentinel 会尝试从 classpath:sentinel.properties
文件读取配置,读取编码默认为 UTF-8
配置项列表
名称 | 含义 | 类型 | 默认值 | 是否必要 |
---|---|---|---|---|
project.name | 此sentinel控制台的应用名称,若未指定,则默认解析 main 函数的类名作为应用名 | String | null | 否 |
csp.sentinel.dashboard.server | sentinel控制台的地址,指定控制台后客户端会自动向该地址发送心跳包。地址格式为:hostIp:port | String | null | 是 |
csp.sentinel.api.port | 本地sentinel启动的HTTP服务端口 | int | 8719 | 否 |
csp.sentinel.heartbeat.client.ip | 指定心跳包中本机的IP,若不指定则通过 HostNameUtil 解析;该配置项多用于多网卡环境 | String | - | 否 |