从 Sentinel 1.5.0 开始,控制台提供通用的鉴权接口 AuthService,用户可根据需求自行实现。
从 Sentinel 1.6.0 起,Sentinel 控制台引入基本的登录功能,默认用户名和密码都是 sentinel
。
用户可以通过如下参数进行配置:
-
-=sentinel
用于指定控制台的登录用户名为sentinel
; -
-=123456
用于指定控制台的登录密码为123456
;如果省略这两个参数,默认用户和密码均为sentinel
; -
-=7200
用于指定 Spring Boot 服务端 session 的过期时间,如7200
表示 7200 秒;60m
表示 60 分钟,默认为 30 分钟;
同样也可以直接在 Spring properties 文件中进行配置。
注意:部署多台控制台时,session 默认不会在各实例之间共享,这一块需要自行改造。
控制台配置项
控制台的一些特性可以通过配置项来进行配置,配置项主要有两个来源:()
和 ()
,同时存在时后者可以覆盖前者。
通过环境变量进行配置时,因为不支持
.
所以需要将其更换为_
。
配置项 | 类型 | 默认值 | 最小值 | 描述 |
---|---|---|---|---|
boolean | true | - | 是否开启登录鉴权,仅用于日常测试,生产上不建议关闭 | |
String | sentinel | - | 登录控制台的用户名,默认为 sentinel
|
|
String | sentinel | - | 登录控制台的密码,默认为 sentinel
|
|
Integer | 0 | 60000 | 是否隐藏无健康节点的应用,距离最近一次主机心跳时间的毫秒数,默认关闭 | |
Integer | 0 | 120000 | 是否自动删除无健康节点的应用,距离最近一次其下节点的心跳时间毫秒数,默认关闭 | |
Integer | 60000 | 30000 | 主机失联判定,不可关闭 | |
Integer | 0 | 300000 | 距离最近心跳时间超过指定时间是否自动删除失联节点,默认关闭 | |
Integer | 60000 | 30000 | 主机失联判定,不可关闭 | |
String | sentinel_dashboard_cookie | - | 控制台应用的 cookie 名称,可单独设置避免同一域名下 cookie 名冲突 |
配置示例:
- 命令行方式:
java -=60000
- Java 方式:
("", "60000");
- 环境变量方式:
sentinel_dashboard_app_hideAppNoMachineMillis=60000
TIPS
本文基于Sentinel 1.6.2编写,未来Sentinel发布新版本后,各位看官可按照本文中的“参考文档”,自行查阅新版本的配置项目。
Spring Cloud Alibaba Sentienl相关配置项
TIPS
参考文档:
/alibaba/spring-cloud-alibaba/blob/master/spring-cloud-alibaba-docs/src/main/asciidoc-zh/
配置项 | 含义 | 默认值 |
---|---|---|
|
Sentinel自动化配置是否生效 | true |
|
取消Sentinel控制台懒加载 | false |
|
应用与Sentinel控制台交互的端口,应用本地会起一个该端口占用的HttpServer | 8719 |
|
Sentinel 控制台地址 | |
-interval-ms |
应用与Sentinel控制台的心跳间隔时间 | |
-ip |
客户端IP | |
|
Servlet Filter的加载顺序。Starter内部会构造这个filter | Integer.MIN_VALUE |
-patterns |
数据类型是数组。表示Servlet Filter的url pattern集合 | /* |
|
Enable to instance CommonFilter | true |
|
metric文件字符集 | UTF-8 |
-single-size |
Sentinel metric 单个文件的大小 | |
-total-count |
Sentinel metric 总文件数量 | |
|
Sentinel 日志文件所在的目录 | |
-pid |
Sentinel 日志文件名是否需要带上pid | false |
-page |
自定义的跳转 URL,当请求被限流时会自动跳转至设定好的 URL | |
-factor |
冷启动因子 | 3 |
配置说明如下:
("", "sentinel-demo");
("", "localhost:8080");
相当于:应用中配置 JVM 启动参数
-=sentinel-demo -=localhost:8080
后有之前缓存应用项目时,要控制台中的机器列表去移除无效的 机器。
Alibaba Sentinel启动配置项
TIPS
参考文档:
/alibaba/Sentinel/wiki/启动配置项
sentinel-core 配置项
名称 | 含义 | 类型 | 默认值 | 是否必需 | 备注 |
---|---|---|---|---|---|
|
指定程序的名称 | String |
null |
否 | |
|
指定程序的类型 | int |
0 (APP_TYPE_COMMON ) |
否 | 1.6.0 引入 |
|
单个监控文件的大小 | long |
52428800 | 否 | |
|
监控文件的总数上限 | int |
6 | 否 | |
|
Sentinel 日志文件目录 | String |
${}/logs/csp/ |
否 | 1.3.0 引入 |
|
日志文件名中是否加入进程号,用于单机部署多个应用的情况 | boolean |
false |
否 | 1.3.0 引入 |
|
最大的有效响应时长(ms),超出此值则按照此值记录 | int |
4900ms | 否 | 1.4.1 引入 |
其中 项用于指定应用名(appName)。若未指定,则默认从
中解析出对应的类名作为应用名。实际项目使用中建议指定应用名。
注意:若需要在单台机器上运行相同服务的多个实例,则需要加入
-=true
来保证不同实例日志的独立性。
sentinel-transport-common 配置项
名称 | 含义 | 类型 | 默认值 | 是否必需 |
---|---|---|---|---|
|
控制台的地址,指定控制台后客户端会自动向该地址发送心跳包。地址格式为:hostIp:port
|
String |
null |
是 |
|
心跳包发送周期,单位毫秒 | long |
null |
非必需,若不进行配置,则会从相应的 HeartbeatSender 中提取默认值 |
|
本地启动 HTTP API Server 的端口号 | int |
null |
是,且不可冲突 |
使用说明
所有参数均可通过 JVM -D 参数指定。除 以及日志的配置项(如
)之外,其余参数还可通过 properties 文件指定,路径为
${user_home}/logs/csp/${}.properties
。
优先级顺序:JVM -D 参数的优先级最高,若 properties 和 JVM 参数中有相同项的配置,以 JVM -D 参数配置的为准。
========================
附上:启动配置项 原文
配置方式
Sentinel 提供如下的配置方式:
- JVM -D 参数方式
- properties 文件方式(1.7.0 版本开始支持)
其中, 参数只能通过 JVM -D 参数方式配置(since 1.8.0 取消该限制),其它参数支持所有的配置方式。
优先级顺序:JVM -D 参数的优先级最高。若 properties 和 JVM 参数中有相同项的配置,以 JVM 参数配置的为准。
用户可以通过 -
参数配置 properties 文件的路径,支持 classpath 路径配置(如 classpath:
)。默认 Sentinel 会尝试从 classpath:
文件读取配置,读取编码默认为 UTF-8。
注:1.7.0 以下版本可以通过旧的
${user_home}/logs/csp/${}.properties
配置文件进行配置(除和日志相关配置项)。
注:若您的应用为 Spring Boot 或 Spring Cloud 应用,您可以使用 Spring Cloud Alibaba,通过 Spring 配置文件来指定配置,详情请参考 Spring Cloud Alibaba Sentinel 文档。
配置项列表
sentinel-core 的配置项
基础配置项
名称 | 含义 | 类型 | 默认值 | 是否必需 | 备注 |
---|---|---|---|---|---|
|
指定应用的名称 | String |
null |
否 | |
|
指定应用的类型 | int |
0 (APP_TYPE_COMMON ) |
否 | 1.6.0 引入 |
|
单个监控日志文件的大小 | long |
52428800 (50MB) | 否 | |
|
监控日志文件的总数上限 | int |
6 | 否 | |
|
最大的有效响应时长(ms),超出此值则按照此值记录 | int |
4900 | 否 | 1.4.1 引入 |
|
SPI 加载时使用的 ClassLoader,默认为给定类的 ClassLoader | String |
default |
否 | 若配置 context 则使用 thread context ClassLoader。1.7.0 引入 |
其中 项用于指定应用名(appName)。若未指定,则默认解析 main 函数的类名作为应用名。实际项目使用中建议手动指定应用名。
日志相关配置项
名称 | 含义 | 类型 | 默认值 | 是否必需 | 备注 |
---|---|---|---|---|---|
|
Sentinel 日志文件目录 | String |
${}/logs/csp/ |
否 | 1.3.0 引入 |
|
日志文件名中是否加入进程号,用于单机部署多个应用的情况 | boolean |
false |
否 | 1.3.0 引入 |
|
Record 日志输出的类型,file 代表输出至文件,console 代表输出至终端 |
String |
file |
否 | 1.6.2 引入 |
注意:若需要在单台机器上运行相同服务的多个实例,则需要加入
-=true
来保证不同实例日志的独立性。
sentinel-transport-common 的配置项
名称 | 含义 | 类型 | 默认值 | 是否必需 |
---|---|---|---|---|
|
控制台的地址,指定控制台后客户端会自动向该地址发送心跳包。地址格式为:hostIp:port
|
String |
null |
是 |
|
心跳包发送周期,单位毫秒 | long |
null |
非必需,若不进行配置,则会从相应的 HeartbeatSender 中提取默认值 |
|
本地启动 HTTP API Server 的端口号 | int |
8719 | 否 |
|
指定心跳包中本机的 IP | String |
- | 若不指定则通过 HostNameUtil 解析;该配置项多用于多网卡环境 |
注:
可不提供,默认为 8719,若端口冲突会自动向下探测可用的端口。