
osmiling/sentinel-dashboard注:本docker镜像来自github开源代码,如有侵权请联系作者删除。
该镜像的持久化方式采用的是 redis,所以需要先在外部创建一个 redis 服务。
Docker run --name sentinel-dashboard -e REDIS_HOST=127.0.0.1 -e REDIS_PORT=6379 -p 8080:8080 osmiling/sentinel-dashboard:1.8.9-redis
yamlversion: '3.1' services: sentinel-dashboard: image: osmiling/sentinel-dashboard:1.8.9-redis container_name: sentinel-dashboard logging: driver: json-file options: max-size: "100m" max-file: "5" restart: always ports: - "8619:8619" environment: SERVER_PORT: 8619 REDIS_HOST: 127.0.0.1 REDIS_PORT: 6379 REDIS_PASSWORD: *** REDIS_DATABASE: 15 volumes: - /etc/localtime:/etc/localtime #将外边时间直接挂载到容器内部,权限只读 - ./logs:/root/logs
| 变量 | 说明 | 版本 |
|---|---|---|
| SERVER_PORT | 端口配置,默认8080 | 1.8.5-redis |
| SENTINEL_USER | 控制台用户名 | 1.8.5-redis |
| SENTINEL_PASSWORD | 控制台密码 | 1.8.5-redis |
| REDIS_HOST | redis主机ip | 1.8.5-redis |
| REDIS_PORT | redis端口 | 1.8.5-redis |
| REDIS_PASSWORD | redis密码 | 1.8.5-redis |
| REDIS_DATABASE | redis数据库 | 1.8.5-redis |
| REDIS_CLUSTER_NODES | redis集群节点 | 1.8.5-redis |
| REDIS_CLUSTER_MRS | redis集群重定向最大次数 | 1.8.5-redis |
| REDIS_SENTINEL_MASTER | redis哨兵模式主节点id | 1.8.5-redis |
| REDIS_SENTINEL_NODES | redis哨兵模式节点 | 1.8.5-redis |
| REDIS_SENTINEL_USER | redis哨兵模式用户名 | 1.8.5-redis |
| REDIS_SENTINEL_PASSWORD | redis哨兵模式密码 | 1.8.5-redis |
注意:可在项目中对应 application.properties 使用。
如果环境变量无法满足配置,可自行映射 application.properties 配置启动。
这里使用 springboot 做项目案例展示。
xml<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency> <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-datasource-redis</artifactId> </dependency>
注意:sentinel-core 的 1.8.5 版本和 1.8.6 版本存在 系统规则 无法正常使用的问题,所以要将该核心包升级到 1.8.7 版本及以上。
yamlspring: cloud: # alibaba哨兵 sentinel: enabled: true # 默认情况下 sentinel 会在客户端首次调用的时候进行初始化,开始向控制台发送心跳包,取消sentinel控制台懒加载功 eager: true transport: # 默认7890端口,假如被占用会自动7890开始依次+1扫描,直至找到未被占用的端口 port: 7890 # 配置Sentinel dashboard地址 dashboard: 127.0.0.1:8080 datasource: ds1: redis: host: 127.0.0.1 database: 15 port: 6379 password: dsk806888 master-id: master rule-key: 'Sentinel:Config:${spring.application.name}:system' channel: 'Sentinel:Channel:${spring.application.name}:system' rule-type: system ds2: redis: host: 127.0.0.1 database: 15 port: 6379 password: dsk806888 master-id: master rule-key: 'Sentinel:Config:${spring.application.name}:flow' channel: 'Sentinel:Channel:${spring.application.name}:flow' rule-type: flow ds3: redis: host: 127.0.0.1 database: 15 port: 6379 password: dsk806888 master-id: master rule-key: 'Sentinel:Config:${spring.application.name}:degrade' channel: 'Sentinel:Channel:${spring.application.name}:degrade' rule-type: degrade ds4: redis: host: 127.0.0.1 database: 15 port: 6379 password: dsk806888 master-id: master rule-key: 'Sentinel:Config:${spring.application.name}:param-flow' channel: 'Sentinel:Channel:${spring.application.name}:param-flow' rule-type: param-flow ds5: redis: host: 127.0.0.1 database: 15 port: 6379 password: dsk806888 master-id: master rule-key: 'Sentinel:Config:${spring.application.name}:authority' channel: 'Sentinel:Channel:${spring.application.name}:authority' rule-type: authority
ds[1-5] 都是同一个 redis ,写这么多是为了不同的限流规则使用。
注意:规则 key 和 通道 channel 就是 redis 的健,需要和控制台的格式一致才能起作用,不是随便写的,格式如下:
"Sentinel:Config:" + 应用名称 + 规则枚举(
com.alibaba.cloud.sentinel.datasource.RuleType)"Sentinel:Channel:" + 应用名称 + 规则枚举(
com.alibaba.cloud.sentinel.datasource.RuleType)






manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务