配置方式

Sentinel 提供如下的配置方式:

  • JVM -D 参数方式
  • properties 文件方式(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。

注: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),超出此值则按照此值记录int49001.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日志文件名中是否加入进程号,用于单机部署多个应用的情况booleanfalse1.3.0 引入
csp.sentinel.log.output.typeRecord 日志输出的类型,file 代表输出至文件,console 代表输出至终端Stringfile1.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,若端口冲突会自动向下探测可用的端口。