You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Micronaut中Redis Sentinel配置连接Redis主节点失败求助

解决Redis Sentinel连接失败问题

问题根源

报错的核心原因是:Redis Sentinel返回给Micronaut应用的主节点地址是容器内部IP(172.21.0.2),而你的应用无法访问这个内部IP;同时当前配置的Sentinel地址可能也不符合实际部署的网络环境。


分步解决方案

1. 修正Redis主节点的对外暴露配置

Redis主节点启动时,必须指定可被外部/应用访问的IP,否则Sentinel会将容器内部IP返回给客户端,导致连接失败。

修改Redis主节点的启动命令(以Docker为例):

docker run -d \
  --name redis-master \
  -p 6379:6379 \
  redis:latest \
  redis-server --bind 0.0.0.0 --protected-mode no --replica-announce-ip 你的宿主机IP或应用可访问的IP
  • --bind 0.0.0.0:允许所有IP访问Redis主节点
  • --replica-announce-ip:指定Sentinel返回给客户端的主节点对外IP(替换为你的宿主机IP或应用能访问的IP)
  • 生产环境建议用密码替代protected-mode no,避免无权限访问

2. 修正Redis Sentinel的主节点指向配置

Sentinel启动时,必须指向主节点的对外可访问IP,而不是容器内部IP,否则Sentinel会记录错误的主节点地址。

修改其中一个Sentinel的启动命令(其余节点同理):

docker run -d \
  --name redis-sentinel-1 \
  -p 26379:26379 \
  redis:latest \
  redis-sentinel --sentinel monitor redismaster 你的宿主机IP或应用可访问的IP 6379 2 \
  --sentinel down-after-milliseconds 5000 \
  --sentinel failover-timeout 10000
  • redismaster要和你application.yml里的#redismaster名称完全一致
  • 2表示需要至少2个Sentinel节点确认主节点故障才会触发故障转移

3. 更新Micronaut应用的Redis配置

根据应用的部署位置,修改application.yml中的Sentinel地址:

情况1:应用在宿主机运行

用宿主机IP+Sentinel映射的端口:

redis:
  uri: redis-sentinel://宿主机IP:26379,宿主机IP:26380,宿主机IP:26381/0#redismaster

情况2:应用和Redis在同一个Docker网络

直接用Sentinel的容器名作为地址(无需端口映射):

redis:
  uri: redis-sentinel://redis-sentinel-1:26379,redis-sentinel-2:26380,redis-sentinel-3:26381/0#redismaster

4. 验证网络连通性

  • 宿主机运行应用:执行telnet 你的宿主机IP 6379,确认能连接Redis主节点
  • Docker容器运行应用:确保应用容器和Redis容器在同一个Docker网络,执行docker network inspect 你的网络名查看节点连通性

生产环境额外配置

不要使用protected-mode no,改用密码认证:

  1. Redis主节点启动时添加--requirepass 你的Redis密码
  2. Sentinel启动时添加--sentinel auth-pass redismaster 你的Redis密码
  3. Micronaut配置更新为:
redis:
  uri: redis-sentinel://:你的Redis密码@宿主机IP:26379,宿主机IP:26380,宿主机IP:26381/0#redismaster

内容的提问来源于stack exchange,提问作者Savitar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 00:35:12