冰糖葫芦+1 2024-03-08 09:38 采纳率: 100%
浏览 1
已结题

一主二从三哨兵模式如何解决切换失败

Redis Sentinel 一主二从三哨兵模式,,A、B、C三台服务器,A是主服务器,B、C是从服务器。配置正确的情况下,当主的服务器断电后,没能成功切到从服务器,请各位大智慧的同学们帮忙解答下,谢谢

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-03-08 09:38
    关注

    引自免费微信小程序:皆我百晓生

    在Redis Sentinel(哨兵)架构中,当主服务器A出现故障时,未能成功切换到从服务器B或C,可能的原因和相应的解决方案如下:

    1. 配置问题:请检查Sentinel配置文件,确保所有Sentinel节点都正确监控了主服务器A、从服务器B和C,并且设置了合理的故障转移参数。例如:

      # sentinel.conf
      sentinel monitor mymaster A 6379 2
      sentinel down-after-milliseconds mymaster 5000
      sentinel failover-timeout mymaster 180000
      sentinel parallel-syncs mymaster 1
      

      这里mymaster是主从集群的名称,A 6379是主服务器地址和端口,2代表至少需要两个Sentinel节点认为主服务器下线才会发起故障转移。

    2. 网络问题:确认Sentinel节点之间以及它们与Redis实例之间的网络连接稳定。如果Sentinel无法及时发现主服务器的下线状态,则无法触发故障转移。

    3. 授权问题:从服务器可能未配置成能被提升为主服务器。确保从服务器B和C都能接受来自Sentinel的故障转移命令,允许升级为新的主服务器。

    4. 故障转移超时:查看日志以确定是否有故障转移超时的情况。若故障转移过程中耗时过长,Sentinel可能会认为故障转移失败并回滚。根据实际情况适当增加failover-timeout值。

    5. 主从复制不一致:确保从服务器已完全同步主服务器的数据。若从服务器落后太多,Sentinel可能不会选择它进行故障转移。可通过调整min-slaves-to-writemin-slaves-max-lag等参数来优化。

    6. 系统资源限制:检查从服务器B和C的系统资源是否充足,包括CPU、内存和磁盘空间,避免因资源不足导致故障转移失败。

    解决以上问题后,Sentinel应能在主服务器故障时自动将从服务器提升为主服务器。同时,为了实现高可用性,请确保有多个Sentinel节点分布在不同的物理机或虚拟机上,以防止Sentinel本身单点故障的问题。

    另外,定期对Sentinel进行健康检查和维护,观察其日志输出,有助于提前发现问题并作出相应调整。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月16日
  • 已采纳回答 3月8日
  • 创建了问题 3月8日

悬赏问题

  • ¥100 有偿寻云闪付SDK转URL技术
  • ¥30 基于信创PC发布的QT应用如何跨用户启动后输入中文
  • ¥20 非root手机,如何精准控制手机流量消耗的大小,如20M
  • ¥15 远程安装一下vasp
  • ¥15 自己做的代码上传图片时,报错
  • ¥15 Lingo线性规划模型怎么搭建
  • ¥15 关于#python#的问题,请各位专家解答!区间型正向化
  • ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
  • ¥50 comsol温度场仿真无法模拟微米级激光光斑
  • ¥15 上传图片时提交的存储类型