[TOC]
## 一、 配置方式
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](https://github.com/alibaba/spring-cloud-alibaba),通过 Spring 配置文件来指定配置,详情请参考[Spring Cloud Alibaba Sentinel 文档](https://github.com/alibaba/spring-cloud-alibaba/wiki/Sentinel)。
## 二、配置项列表
### 2.1. sentinel-core 的配置项
基础配置项
| 名称 | 含义 | 类型 | 默认值 | 是否必需 | 备注 |
| --- | --- | --- | --- | --- | --- |
| `project.name` | 指定应用的名称 | `String` | `null` | 否 | |
| `csp.sentinel.app.type` | 指定应用的类型 | `int` | 0 (`APP_TYPE_COMMON`) | 否 | 1.6.0 引入 |
| `csp.sentinel.metric.file.single.size` | 单个监控日志文件的大小 | `long` | 52428800 (50MB) | 否 | |
| `csp.sentinel.metric.file.total.count` | 监控日志文件的总数上限 | `int` | 6 | 否 | |
| `csp.sentinel.statistic.max.rt` | 最大的有效响应时长(ms),超出此值则按照此值记录 | `int` | 4900 | 否 | 1.4.1 引入 |
| `csp.sentinel.spi.classloader` | SPI 加载时使用的 ClassLoader,默认为给定类的 ClassLoader | `String` | `default` | 否 | 若配置`context`则使用 thread context ClassLoader。1.7.0 引入 |
其中`project.name`项用于指定应用名(appName)。若未指定,则默认解析 main 函数的类名作为应用名。**实际项目使用中建议手动指定应用名**。
日志相关配置项
| 名称 | 含义 | 类型 | 默认值 | 是否必需 | 备注 |
| --- | --- | --- | --- | --- | --- |
| `csp.sentinel.log.dir` | Sentinel 日志文件目录 | `String` | `${user.home}/logs/csp/` | 否 | 1.3.0 引入 |
| `csp.sentinel.log.use.pid` | 日志文件名中是否加入进程号,用于单机部署多个应用的情况 | `boolean` | `false` | 否 | 1.3.0 引入 |
| `csp.sentinel.log.output.type` | Record 日志输出的类型,`file`代表输出至文件,`console`代表输出至终端 | `String` | `file` | 否 | 1.6.2 引入 |
> **注意**:若需要在单台机器上运行相同服务的多个实例,则需要加入`-Dcsp.sentinel.log.use.pid=true`来保证不同实例日志的独立性。
### 2.2. sentinel-transport-common 的配置项
| 名称 | 含义 | 类型 | 默认值 | 是否必需 |
| --- | --- | --- | --- | --- |
| `csp.sentinel.dashboard.server` | 控制台的地址,指定控制台后客户端会自动向该地址发送心跳包。地址格式为:`hostIp:port` | `String` | `null` | 是 |
| `csp.sentinel.heartbeat.interval.ms` | 心跳包发送周期,单位毫秒 | `long` | `null` | 非必需,若不进行配置,则会从相应的`HeartbeatSender`中提取默认值 |
| `csp.sentinel.api.port` | 本地启动 HTTP API Server 的端口号 | `int` | 8719 | 否 |
| `csp.sentinel.heartbeat.client.ip` | 指定心跳包中本机的 IP | `String` | \- | 若不指定则通过`HostNameUtil`解析;该配置项多用于多网卡环境 |
> 注:`csp.sentinel.api.port`可不提供,默认为 8719,若端口冲突会自动向下探测可用的端口。
- 微服务介绍
- 软件架构设计
- 系统简介
- 运行环境
- 模块介绍
- 启动部署命令参数
- 打包说明
- 开发说明
- Java8
- 认证理论
- 有网络隔离
- 无网络隔离
- token自动续签设计
- url级权限控制
- 单点登录
- 登录
- 用户名密码(+验证码)登录
- 通过openId获取token
- 通过手机号获取token
- 第三方系统接口对接
- 第三方系统单点登录
- 通用刷新token
- 账号登出接口
- 统一异常处理
- 日志埋点工具
- 审计日志
- yml自定义配置自动提示
- Redis使用
- CacheManager集成
- 搜索中心
- 网关zuul动态路由
- swagger
- 解决开发环境的服务冲突和实例乱窜
- 多租户理论
- 多租户实现
- 分布式锁
- 分布式id生成器
- 分布式事务
- 分库分表sharding-sphere
- 消息队列
- 系统幂等性
- X 实时搜索系统设计
- Spring Cloud性能调优
- 链路跟踪
- JWT的RSA非对称密钥生成
- jdk
- Oracle
- OpenJDK
- Dragonwell
- JVM介绍
- 常见JVM内存错误及解决方案
- JVM分析工具详解
- nexus
- docker
- 安装
- docker-compose安装
- 私有仓库搭建
- 指定数据储存目录
- 添加私有仓库
- 提交拉取镜像
- X 免Dockerfile文件构建项目镜像
- 持续集成部署CI/CD
- Confluence知识管理
- JIRA事务与项目跟踪软件
- Gitlab代码仓库
- Jenkins自动化部署
- SonarQube代码检测
- Rancher容器管理平台
- nacos
- 部署
- Rancher部署nacos
- 注册中心
- 配置中心
- 多环境
- 生产部署方案
- X 通过Nginx来实现环境隔离
- Sentinel详解
- 动态规则扩展
- 在生产环境中使用 Sentinel
- 启动配置项
- X 网关流控
- ELK日志系统和慢查询SQL
- docker安装
- 普通安装
- Filebeat安装部署
- ES数据定期删除
- 没数据问题排查思路
- X Logstash的grok语法调试
- 慢查询sql
- 审计日志
- Elasticsearch性能优化
- APM监控
- SkyWalking介绍
- Zipkin,Pinpoint,SkyWalking三种服务链路监控组件分析
- 服务端部署
- 客户端部署
- 日志清理
- Metrics监控
- 二进制包部署
- docker部署
- docker安装各组件监控
- Grafana仪表盘和告警配置
- JMeter压力测试工具
- 使用说明
- 分布式事务
- TX-LCN(同步)
- X SEATA(同步)
- X RocketMQ(异步)
- 消息队列
- RocketMQ
- RocketMQ安装部署
- RocketMQ常见异常处理
- SpringCloud-Stream
- RabbitMQ
- Redis
- 单机安装
- 主从复制
- 主从复制+哨兵
- cluster集群
- 持久化方案
- MySQL
- 单机安装
- 主从复制
- 主从切换
- 主主复制
- 高可用
- 分表分库
- Canal数据库日志解析消费
- Canal安装
- 实时同步数据到ElasticSearch
- FastDFS
- docker安装
- centos安装
- 项目管理系统
- 禅道
- 111