启动sentinel
java -Dserver.port=8849 -Dcsp.sentinel.dashboard.server=localhost:8849 -Dcsp.sentinel.heartbeat.client.ip=192.168.101.9 -Dcsp.sentinel.log.dir=${HOME}/UserData/programs/sentinel/logs -Dproject.name=mysentinel -jar sentinel-dashboard-1.8.8.jar
配置参数
名称 | 含义 | 类型 | 默认值 | 是否必须 | 备注 | |
---|---|---|---|---|---|---|
project.name | 指定应用的名称 | String | null | 若未指定,则默认解析 main 函数的类名作为应用名。实际项目使用中建议手动指定应用名。 | ||
csp.sentinel.app.type | 指定应用的类型 | int | 0 (APP_TYPE_COMMON) | 1.6.0 引入 | ||
csp.sentinel.metric.file.single.size | 单个监控日志文件的大小 | long | 52428800 (50MB) | |||
csp.sentinel.metric.file.total.count | 监控日志文件的总数上限 | int | 6 | |||
csp.sentinel.metric.flush.interval | Sentinel metric log 任务的时间频率,单位为秒(s) | int | 1 | 若配置0,则代表不打印 metric log。该配置项于 1.8.x 版本引入 | ||
csp.sentinel.spi.classloader | SPI 加载时使用的 ClassLoader,默认为给定类的 ClassLoader | String | default | 若配置 context 则使用 thread context ClassLoader。1.7.0 引入 | ||
csp.sentinel.log.dir | Sentinel 日志文件目录 | String | ${user.home}/logs/csp/ | 1.3.0 引入 | ||
csp.sentinel.log.use.pid | 日志文件名中是否加入进程号,用于单机部署多个应用的情况 | boolean | false | 1.3.0 引入 | ||
csp.sentinel.log.output.type | Record 日志输出的类型,file 代表输出至文件,console 代表输出至终端 | String | file | 1.6.2 引入 | ||
csp.sentinel.dashboard.server | 控制台的地址,指定控制台后客户端会自动向该地址发送心跳包。地址格式为:hostIp:port | String | null | 是 | ||
csp.sentinel.heartbeat.interval.ms | 心跳包发送周期,单位毫秒 | long | null | 非必需,若不进行配置,则会从相应的HeartbeatSender 中提取默认值 | ||
csp.sentinel.api.port | 本地启动 HTTP API Server 的端口号,默认为 8719,若端口冲突会自动向下探测可用的端口 | int | 8719 | |||
csp.sentinel.heartbeat.client.ip | 指定心跳包中本机的 IP | String | ||||
sentinel.dashboard.auth.username | 用于指定控制台的登录用户名为 sentinel | String | sentinel | |||
sentinel.dashboard.auth.password | 用于指定控制台的登录密码为 123456;如果省略这两个参数,默认用户和密码均为 sentinel | String | sentinel | |||
server.servlet.session.timeout | 用于指定 Spring Boot 服务端 session 的过期时间,如 7200 表示 7200 秒;60m 表示 60 分钟,默认为 30 分钟; | 7200 |
spring-boot安装配置
安装依赖
代码语言:xml复制<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
docker
docker pull bladex/sentinel-dashboard
docker run --name sentinel -d -p 8858:8858 imageid
配置
spring.cloud.sentinel.transport.port: 8719
对应 csp.sentinel.api.port
配置
spring.cloud.sentinel.dashboard: 127.0.0.1:8849
控制台地址,对应csp.sentinel.dashboard.server
配置
spring.cloud.sentinel.datasource.ds2.nacos.server-addr=127.0.0.1:8848
spring.cloud.sentinel.datasource.ds2.nacos.data-id=sentinel
spring.cloud.sentinel.datasource.ds2.nacos.group-id=DEFAULT_GROUP
spring.cloud.sentinel.datasource.ds2.nacos.data-type=json // json xml ,默认json
spring.cloud.sentinel.datasource.ds2.nacos.rule-type=degrade //flow,degrade,authority,system, param-flow, gw-flow, gw-api-group
// 配置内容可以如下
[
{
"resource": "/provider/hello/{name}",
"controlBehavior": 0,
"count": 1,
"grade": 1,
"limitApp": "default",
"strategy": 0
}
]
代码研究
SentinelAutoConfiguration
QA
启动后提示 Failed to fetch metric from <**>: socket timeout,且无法连接到sentinel的Dashboard
参考文档(待研究)
代码语言:java复制public static void main(String[] args) {
System.setProperty("csp.sentinel.dashboard.server","localhost:8849");
System.setProperty("csp.sentinel.app.name","apptwo");
...
}