Alibaba Sentinel 配置项总结,鉴权配置,配置使用说明

您所在的位置:网站首页 鉴权模式怎么设置 Alibaba Sentinel 配置项总结,鉴权配置,配置使用说明

Alibaba Sentinel 配置项总结,鉴权配置,配置使用说明

2024-07-12 20:56| 来源: 网络整理| 查看: 265

 

从 Sentinel 1.5.0 开始,控制台提供通用的鉴权接口 AuthService,用户可根据需求自行实现。

从 Sentinel 1.6.0 起,Sentinel 控制台引入基本的登录功能,默认用户名和密码都是 sentinel。

用户可以通过如下参数进行配置:

-Dsentinel.dashboard.auth.username=sentinel 用于指定控制台的登录用户名为 sentinel;-Dsentinel.dashboard.auth.password=123456 用于指定控制台的登录密码为 123456;如果省略这两个参数,默认用户和密码均为 sentinel;-Dserver.servlet.session.timeout=7200 用于指定 Spring Boot 服务端 session 的过期时间,如 7200 表示 7200 秒;60m 表示 60 分钟,默认为 30 分钟;

同样也可以直接在 Spring properties 文件中进行配置。

注意:部署多台控制台时,session 默认不会在各实例之间共享,这一块需要自行改造。

控制台配置项

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

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

配置项类型默认值最小值描述auth.enabledbooleantrue-是否开启登录鉴权,仅用于日常测试,生产上不建议关闭sentinel.dashboard.auth.usernameStringsentinel-登录控制台的用户名,默认为 sentinelsentinel.dashboard.auth.passwordStringsentinel-登录控制台的密码,默认为 sentinelsentinel.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

 

TIPS

本文基于Sentinel 1.6.2编写,未来Sentinel发布新版本后,各位看官可按照本文中的“参考文档”,自行查阅新版本的配置项目。

Spring Cloud Alibaba Sentienl相关配置项

TIPS

参考文档:https://github.com/alibaba/spring-cloud-alibaba/blob/master/spring-cloud-alibaba-docs/src/main/asciidoc-zh/sentinel.adoc

配置项含义默认值spring.cloud.sentinel.enabledSentinel自动化配置是否生效truespring.cloud.sentinel.eager取消Sentinel控制台懒加载falsespring.cloud.sentinel.transport.port应用与Sentinel控制台交互的端口,应用本地会起一个该端口占用的HttpServer8719spring.cloud.sentinel.transport.dashboardSentinel 控制台地址 spring.cloud.sentinel.transport.heartbeat-interval-ms应用与Sentinel控制台的心跳间隔时间 spring.cloud.sentinel.transport.client-ip客户端IP spring.cloud.sentinel.filter.orderServlet Filter的加载顺序。Starter内部会构造这个filterInteger.MIN_VALUEspring.cloud.sentinel.filter.url-patterns数据类型是数组。表示Servlet Filter的url pattern集合/*spring.cloud.sentinel.filter.enabledEnable to instance CommonFiltertruespring.cloud.sentinel.metric.charsetmetric文件字符集UTF-8spring.cloud.sentinel.metric.file-single-sizeSentinel metric 单个文件的大小 spring.cloud.sentinel.metric.file-total-countSentinel metric 总文件数量 spring.cloud.sentinel.log.dirSentinel 日志文件所在的目录 spring.cloud.sentinel.log.switch-pidSentinel 日志文件名是否需要带上pidfalsespring.cloud.sentinel.servlet.block-page自定义的跳转 URL,当请求被限流时会自动跳转至设定好的 URL spring.cloud.sentinel.flow.cold-factor冷启动因子3

配置说明如下: System.setProperty("project.name", "sentinel-demo"); System.setProperty("csp.sentinel.dashboard.server", "localhost:8080");

相当于:应用中配置 JVM 启动参数 -Dproject.name=sentinel-demo -Dcsp.sentinel.dashboard.server=localhost:8080

后有之前缓存应用项目时,要控制台中的机器列表去移除无效的 机器。

 

Alibaba Sentinel启动配置项

TIPS

参考文档:https://github.com/alibaba/Sentinel/wiki/启动配置项

sentinel-core 配置项 名称含义类型默认值是否必需备注project.name指定程序的名称Stringnull否 csp.sentinel.app.type指定程序的类型int0 (APP_TYPE_COMMON)否1.6.0 引入csp.sentinel.metric.file.single.size单个监控文件的大小long52428800否 csp.sentinel.metric.file.total.count监控文件的总数上限int6否 csp.sentinel.log.dirSentinel 日志文件目录String${user.home}/logs/csp/否1.3.0 引入csp.sentinel.log.use.pid日志文件名中是否加入进程号,用于单机部署多个应用的情况booleanfalse否1.3.0 引入csp.sentinel.statistic.max.rt最大的有效响应时长(ms),超出此值则按照此值记录int4900ms否1.4.1 引入

其中 project.name 项用于指定应用名(appName)。若未指定,则默认从 sun.java.command 中解析出对应的类名作为应用名。实际项目使用中建议指定应用名。

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

sentinel-transport-common 配置项 名称含义类型默认值是否必需csp.sentinel.dashboard.server控制台的地址,指定控制台后客户端会自动向该地址发送心跳包。地址格式为:hostIp:portStringnull是csp.sentinel.heartbeat.interval.ms心跳包发送周期,单位毫秒longnull非必需,若不进行配置,则会从相应的 HeartbeatSender中提取默认值csp.sentinel.api.port本地启动 HTTP API Server 的端口号intnull是,且不可冲突 使用说明

所有参数均可通过 JVM -D 参数指定。除 project.name 以及日志的配置项(如 csp.sentinel.log.dir)之外,其余参数还可通过 properties 文件指定,路径为 ${user_home}/logs/csp/${project.name}.properties。

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

 

========================

附上:启动配置项 原文

配置方式

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:portStringnull是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,若端口冲突会自动向下探测可用的端口。

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3