当前位置: 首页 > news >正文

哨兵机制(sentinel)的原理

Redis哨兵机制是通过在独立的哨兵节点上运行特定的哨兵进程来实现的。这些哨兵进程监控主从节点的状态,并在发现故障时自动完成故障发现和转移,并通知应用方,实现高可用性。

以下是哨兵机制的工作原理:

1. 哨兵选举:

在启动时,每个哨兵节点会执行选举过程,其中一个哨兵节点被选为领导者(leader),负责协调其他哨兵节点。

a. 选举过程:
  • 每个在线的哨兵节点都可以成为领导者,每个哨兵节点会向其它哨兵发is-master-down-by-addr命令,征求判断并要求将自己设置为领导者;
  • 当其它哨兵收到此命令时,可以同意或者拒绝它成为领导者;
  • 如果哨兵发现自己在选举的票数大于等于num(sentinels)/2+1时,将成为领导者,如果没有超过,继续选举。

2. 监控主从节点:

哨兵节点通过发送命令周期性地检查主从节点的健康状态,包括主节点是否在线、从节点是否同步等。如果哨兵节点发现主节点不可用,它会触发一次故障转移。

3. 故障转移:

一旦主节点被判定为不可用,哨兵节点会执行故障转移操作。它会从当前的从节点中选出一个新的主节点,并将其他从节点切换到新的主节点。这样,系统可以继续提供服务而无需人工介入。

a. 故障转移过程:
    • 由Sentinel节点定期监控发现主节点是否出现了故障: sentinel会向master发送心跳PING来确认master是否存活,如果master在“一定时间范围”内不回应PONG 或者是回复了一个错误消息,那么这个sentinel会主观地(单方面地)认为这个master已经不可用了。
    • 确认主节点:
      • 过滤掉不健康的(下线或断线),没有回复过哨兵ping响应的从节点
      • 选择从节点优先级最高的
      • 选择复制偏移量最大,此指复制最完整的从节点

当主节点出现故障, 由领导者负责处理主节点的故障转移。

4. 客户端重定向:

哨兵节点会通知客户端新的主节点的位置,使其能够与新的主节点建立连接并发送请求。这确保了客户端可以无缝切换到新的主节点,继续进行操作。

此外,哨兵节点还负责监控从节点的状态。如果从节点出现故障,哨兵节点可以将其下线,并在从节点恢复正常后重新将其加入集群。

http://www.jsqmd.com/news/394842/

相关文章:

  • Redis客观下线
  • 一文搞懂超详细ubuntu22.04部署k8s1.28高可用(一)【多master+keepalived+nginx实现负载均衡】:核心原理+实战案例
  • 61 二分查找
  • 解决DokuWiki JSONRPC 403错误
  • COMSOL 两相流 THM 热流固耦合模型:探索与实践
  • 探索基于Matlab的虚拟同步电机并网控制仿真之旅
  • 基于springboot的健身爱好者打卡与互动交流系统
  • 镜像孪生驱动的视频孪生升级版水利电力三维态势控制中枢白皮书
  • flask:得到post的数组参数
  • 提示工程架构师必知的提示系统需求管理妙招
  • 边缘计算与AI原生决策支持的完美结合
  • 智能交通中的计算机视觉:AI架构师实战指南
  • 2026年优秀的银行家具,广东办公家具,国景办公家具厂家用户优选名录 - 品牌鉴赏师
  • 揭秘大数据领域内存计算的弹性伸缩
  • 大数据降维项目实战:从需求分析到算法部署全流程详解
  • 提示工程架构师分享提升AI性能的独特提示工程见解
  • 基于深度强化学习的光伏系统MPPT控制技术探索
  • 应用安全 --- IDA脚本 之 函数批量重命名
  • 低代码能力要不要加?AI应用架构师的智能数资系统低代码决策
  • 2026年专业的广东办公座椅厂家选购参考指南 - 品牌鉴赏师
  • YOLO26涨点改进 | 独家创新,卷积创新改进篇 | TGRS 2025 | YOLO26引入CNCM特征均匀校正模块,含C2PSA二次创新,对小目标和边界精准定位方面具有显著优势,适合小目标检测
  • 2026年比较好的办公家具双层床厂家选购参考指南 - 品牌鉴赏师
  • Cursor+Claude AI编程 - 利用Cursor Opus4.6快速生成一个Python项目 - Flask2+Vue3+Vite的学生信息管理系统
  • 大数据存算分离架构选型:5大主流方案对比
  • Java高频面试题:什么是Redis哨兵机制?
  • 闲置的中银通支付卡如何“变废为宝”?揭秘2026年高效回收新趋势 - 京顺回收
  • 激光雷达(LiDAR):原始数据包
  • 完整教程:C++ 类和对象(中)
  • 详细介绍:QLC已成过去,PLC时代到来!
  • C++ 数据类型转换