resolve-hostnames 是干什么的
较新版本的哨兵与集群支持用主机名替代 IP:resolve-hostnames 让哨兵按主机名解析配置与命令中的地址,announce-hostnames 让节点对外公告自己的主机名。在容器与动态 IP 环境里,这能避免地址漂移导致的配置失效与监控断链。
基本信息
| 解析开关 | sentinel resolve-hostnames yes |
|---|---|
| 公告开关 | sentinel announce-hostnames yes |
| 收益 | 地址漂移环境下配置与公告保持稳定 |
| 核心依赖 | DNS 解析必须稳定可靠 |
| 版本要求 | 较新版本提供,混跑环境先确认版本 |
两种开关的区别
| 配置 | 作用范围 | 注意 |
|---|---|---|
| resolve-hostnames | 解析配置与命令中的主机名 | 需要 DNS 稳定返回,解析失败影响监控 |
| announce-hostnames | 对外公告自身使用主机名 | 客户端与监控侧要能解析这些名字 |
| 只开其一 | 解析或公告其中一侧仍走 IP | 混用时地址格式不一致,需客户端兼容 |
| 两者都开 | 解析与公告统一走主机名 | 配置最稳定,但对 DNS 依赖最强 |
示例
示例
sentinel resolve-hostnames yes
sentinel announce-hostnames yes
sentinel monitor mymaster db.internal 6379 2
sentinel down-after-milliseconds mymaster 5000
# 改完重启哨兵进程,并核对 SENTINEL MASTERS 输出中的地址形式典型使用场景
- 容器环境:实例 IP 随重建变化
- 云主机:弹性地址或内网地址可变
- 多机房统一命名:用域名表达实例归属
- 客户端与监控一致性:避免公告地址与解析地址不同步
- 版本升级评估:确认现有版本是否支持这些配置项
主机名解析依赖 DNS 稳定:解析抖动会直接反映成哨兵监控异常与误判下线,改配置前先确认解析链路的可靠性。
客户端与监控侧要同步支持主机名,否则公告地址变化后会解析失败;上线前用真实客户端验证连接与故障转移后的重连。
旧版本不认识这些配置项,混跑环境启动会直接报错;升级顺序与各节点版本一致性要在变更前确认。