Skip to content

启动配置

louyuting edited this page Sep 27, 2020 · 3 revisions

Overview

配置项详解

Sentinel支持的配置方式

Sample

Sentinel 会通过以下策略读取配置项:

  • 若通过 InitWithConfigFile(path) 函数初始化,Sentinel 则会从 path 指定的 yaml 文件中读取配置项,同时会通过环境变量读取基础的配置;
  • 若通过 InitDefault() 函数初始化,Sentinel 则会尝试从 SENTINEL_CONFIG_FILE_PATH 环境变量读取 path 并读取对应的文件。若未指定则默认从项目目录下的 sentinel.yml 文件读取配置;若均不存在,Sentinel 会通过环境变量读取基础的配置(如项目名称),其它配置项采用默认值。
  • 若通过 InitWithConfig(confEntity *config.Entity) 函数初始化,用户需要自己制定配置项 config.Entity, Sentinle 会使用用户输入的配置项初始化。如果存在环境变量,那么环境变量优先级最高。
  • 环境变量配置优先级最高。若同时存在,则环境变量的配置会覆盖 YAML 文件的配置。

以下配置项中,应用名称(sentinel.app.name)为必需的配置项。

环境变量配置项

key 对应的 yaml 配置项 含义 备注
SENTINEL_CONFIG_FILE_PATH - yaml 配置文件路径 若未指定则默认从项目目录下的 sentinel.yml 文件读取配置
SENTINEL_APP_NAME sentinel.app.name 项目名称 必需的配置项。若环境变量和文件中均未配置,则标为 unknown_go_service
SENTINEL_APP_TYPE sentinel.app.type 项目类型 必需的配置项。若环境变量和文件中均未配置,则标为 1
SENTINEL_LOG_DIR - 日志路径 默认路径为 ~/logs/csp
SENTINEL_LOG_USE_PID - 日志文件是否带 pid 默认为 false

YAML 配置项

key 含义 默认值 备注
version 配置的版本 v1
sentinel.app.name 项目名称 unknown_go_service 必需的配置项。若环境变量 SENTINEL_APP_NAME 和文件中均未配置,则标为 unknown_go_service
sentinel.app.type 项目类型 0 必需的配置项。若环境变量 SENTINEL_APP_TYPE 和文件中均未配置,则标为 0
sentinel.log.dir 日志路径 ${user.home}/logs/csp
sentinel.log.usePid 监控日志文件名是否带上进程 PID false
sentinel.log.metric.maxFileCount 监控日志最大文件数目 8
sentinel.log.metric.singleFileMaxSize 监控日志单个文件大小上限 50 MB (1024*1024*50)
sentinel.log.metric.flushIntervalSec 监控日志聚合和刷盘的时间频率 1s 若无特殊需要,请采用默认值。若设为 0 则关闭监控日志输出。
sentinel.stat.system.collectIntervalMs 系统指标收集的间隔时间 1000
sentinel.useCachedTime 是否通过异步协程缓存时间 (ms) true

YAML 配置文件示例:

version: "v1"
sentinel:
  app:
    name: sentinel-go-demo
    type: 0
  log:
    dir: "~/logs/csp"
    pid: false
    metric:
      maxFileCount: 14
      flushIntervalSec: 1
  stat:
    system:
      collectIntervalMs: 1000
Clone this wiki locally