Sign inSign up

keygood/sentinel

By keygood

•Updated about 5 years ago

Image
0

97

keygood/sentinel repository overview

Sentinel 配置项的说明

应用端连接控制台的配置项

#配置sentinel dashboard的地址 spring.cloud.sentinel.transport.dashboard=127.0.0.1:8080 #指定和控制台通信的ip,如不配置,会自动选择一个ip注册 spring.cloud.sentinel.transport.client-ip=127.0.0.1 #指定和控制通信的端口,默认值8719,如不设置,会自动从8719开始扫描,依次+1,直到找到未被占用的端口 spring.cloud.sentinel.transport.port=8719 #心跳发送周期,默认值null,但在SimpleHttpHeartbeatSender会用默认值10秒 spring.cloud.sentinel.transport.heartbeat-interval-ms=10000 ##关闭对spring mav端点的保护 spring.cloud.sentinel.filter.enabled=false

控制台的配置项

#指定访问控制的台的端口 server.port=8080 #指定访问的地址 csp.sentinel.dashboard.server=localhost:8080 #指定程序的名称 project.name=sentinel #Dashboard登录帐号(1.6以上版本支持) sentinel.dashboard.auth.username=xxx sentinel.dashboard.auth.password=xxx #登录session过期时间,默认30分钟,配置为7200表示7200秒,配置为60m表示为60分钟 server.servlet.session.timeout=30m #控制台的这些参数的使用方式就是在启动jar的时候,直接指定,参数前面加 -D 如下 java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar

docker + springboot 连接 docker + sentinel 项目,经过验证: 方案一,docker启动jar 中加JAVA_OPTS=-Dcsp.sentinel.heartbeat.client.ip=XXX,可行。 方案二,springboot 配置文件加 spring.cloud.sentinel.transport.client-ip=XXX,可行。

java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dcsp.sentinel.heartbeat.client.ip=localhost -Dsentinel.dashboard.auth.username=sentinel -Dsentinel.dashboard.auth.password=sentinel -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar

镜像启动变量默认设置:

PORT 8080

SERVER_PORT 8080

USERNAME sentinel

PASSWORD sentinel

PROJECT_NAME sentinel-dashboard

SENTINEL_LOGS /opt/logs

控制台配置项

控制台的一些特性可以通过配置项来进行配置,配置项主要有两个来源:System.getProperty() 和 System.getenv(),同时存在时后者可以覆盖前者。

通过环境变量进行配置时,因为不支持 . 所以需要将其更换为 _。

配置项类型默认值最小值描述
auth.enabledbooleantrue-是否开启登录鉴权,仅用于日常测试,生产上不建议关闭
sentinel.dashboard.auth.usernameStringsentinel-登录控制台的用户名,默认为 sentinel
sentinel.dashboard.auth.passwordStringsentinel-登录控制台的密码,默认为 sentinel
sentinel.dashboard.app.hideAppNoMachineMillisInteger060000是否隐藏无健康节点的应用,距离最近一次主机心跳时间的毫秒数,默认关闭
sentinel.dashboard.removeAppNoMachineMillisInteger0120000是否自动删除无健康节点的应用,距离最近一次其下节点的心跳时间毫秒数,默认关闭
sentinel.dashboard.unhealthyMachineMillisInteger6000030000主机失联判定,不可关闭
sentinel.dashboard.autoRemoveMachineMillisInteger0300000距离最近心跳时间超过指定时间是否自动删除失联节点,默认关闭
sentinel.dashboard.unhealthyMachineMillisInteger6000030000主机失联判定,不可关闭
server.servlet.session.cookie.nameStringsentinel_dashboard_cookie-控制台应用的 cookie 名称,可单独设置避免同一域名下 cookie 名冲突

配置示例:

  • 命令行方式:
java -Dsentinel.dashboard.app.hideAppNoMachineMillis=60000
  • Java 方式:
System.setProperty("sentinel.dashboard.app.hideAppNoMachineMillis", "60000");
  • 环境变量方式:
sentinel_dashboard_app_hideAppNoMachineMillis=60000

命令行方式: java -Dsentinel.dashboard.app.hideAppNoMachineMillis=60000 Java 方式: System.setProperty("sentinel.dashboard.app.hideAppNoMachineMillis", "60000"); 环境变量方式: sentinel_dashboard_app_hideAppNoMachineMillis=60000

更多配置项说明,可以访问官方网址: https://github.com/alibaba/spring-cloud-alibaba/blob/master/spring-cloud-alibaba-docs/src/main/asciidoc-zh/sentinel.adoc⁠ 如果官方网址访问缓慢,可以访问下面老师的手记地址: https://www.imooc.com/article/289562⁠

配置方式

Sentinel 提供如下的配置方式:

  • JVM -D 参数方式
  • properties 文件方式(1.7.0 版本开始支持)

其中,project.name 参数只能通过 JVM -D 参数方式配置(since 1.8.0 取消该限制),其它参数支持所有的配置方式。

优先级顺序:JVM -D 参数的优先级最高。若 properties 和 JVM 参数中有相同项的配置,以 JVM 参数配置的为准。

用户可以通过 -Dcsp.sentinel.config.file 参数配置 properties 文件的路径,支持 classpath 路径配置(如 classpath:sentinel.properties)。默认 Sentinel 会尝试从 classpath:sentinel.properties 文件读取配置,读取编码默认为 UTF-8。

注:1.7.0 以下版本可以通过旧的 ${user_home}/logs/csp/${project.name}.properties 配置文件进行配置(除 project.name 和日志相关配置项)。

注:若您的应用为 Spring Boot 或 Spring Cloud 应用,您可以使用 Spring Cloud Alibaba⁠,通过 Spring 配置文件来指定配置,详情请参考 Spring Cloud Alibaba Sentinel 文档⁠。

⁠ 配置项列表

⁠ sentinel-core 的配置项
⁠ 基础配置项
名称含义类型默认值是否必需备注
project.name指定应用的名称Stringnull否
csp.sentinel.app.type指定应用的类型int0 (APP_TYPE_COMMON)否1.6.0 引入
csp.sentinel.metric.file.single.size单个监控日志文件的大小long52428800 (50MB)否
csp.sentinel.metric.file.total.count监控日志文件的总数上限int6否
csp.sentinel.statistic.max.rt最大的有效响应时长(ms),超出此值则按照此值记录int4900否1.4.1 引入
csp.sentinel.spi.classloaderSPI 加载时使用的 ClassLoader,默认为给定类的 ClassLoaderStringdefault否若配置 context 则使用 thread context ClassLoader。1.7.0 引入

其中 project.name 项用于指定应用名(appName)。若未指定,则默认解析 main 函数的类名作为应用名。实际项目使用中建议手动指定应用名。

⁠ 日志相关配置项
名称含义类型默认值是否必需备注
csp.sentinel.log.dirSentinel 日志文件目录String${user.home}/logs/csp/否1.3.0 引入
csp.sentinel.log.use.pid日志文件名中是否加入进程号,用于单机部署多个应用的情况booleanfalse否1.3.0 引入
csp.sentinel.log.output.typeRecord 日志输出的类型,file 代表输出至文件,console 代表输出至终端Stringfile否1.6.2 引入

注意:若需要在单台机器上运行相同服务的多个实例,则需要加入 -Dcsp.sentinel.log.use.pid=true 来保证不同实例日志的独立性。

⁠ sentinel-transport-common 的配置项
名称含义类型默认值是否必需
csp.sentinel.dashboard.server控制台的地址,指定控制台后客户端会自动向该地址发送心跳包。地址格式为:hostIp:port Stringnull是
csp.sentinel.heartbeat.interval.ms心跳包发送周期,单位毫秒longnull非必需,若不进行配置,则会从相应的 HeartbeatSender 中提取默认值
csp.sentinel.api.port本地启动 HTTP API Server 的端口号int8719否
csp.sentinel.heartbeat.client.ip指定心跳包中本机的 IPString-若不指定则通过 HostNameUtil 解析;该配置项多用于多网卡环境

注:csp.sentinel.api.port 可不提供,默认为 8719,若端口冲突会自动向下探测可用的端口。

Tag summary

Content type

Image

Digest

Size

108.3 MB

Last updated

about 5 years ago

docker pull keygood/sentinel:1.8.2