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

Redis-哨兵选取主节点流程

1.主观下线:

哨兵节点通过心跳包,判定redis服务器是否正常工作,若心跳包没有按时到达,说明redis服务器出现故障了. 此时还需要再进行判定,不能排除是网络波动的影响,认为redis节点的出现故障.

2.客观下线:

当多个哨兵节点都认为主节点出现故障了(认为主节点出现故障的哨兵节点数目达到法定票数),就认为该主节点确实是下线了.

3.选取leader哨兵节点:

当主节点出现故障后,哨兵节点就要采取措施补救,先从哨兵节点集合中选出一个leader哨兵节点,由这个leader哨兵节点后续的主节点替换和后续工作.

选取leader流程:

每个哨兵节点只有一票的选举权,最先判断到主节点确实出故障的哨兵节点会先给自己投一票,然后,别的哨兵节点发现有哨兵节点已经获得了票,就会将票投给他,也就是延迟性最小的节点最可能会成为leader节点.

这里也是为什么强调要将哨兵节点个数设成单数个的原因,减少了两个节点都获取到相同的票数的情况.

4.选取新主节点:

leader选取完后,就要开始选取一个从节点作为主节点,选取依据:

1>.优先级: 每个redis节点都会在配置文件中有一个优先级的设置 slave-priority,优先级高的节点更会被选取为主节点.

2>.offset: offset大的更会被选取;offset越大.说明从节点和主节点同步的进度越相近,数据越相近.

3>.runId: 每个redis节点启动的时候都会随机生成一个数字串runId,当从节点的优先级和offset都相同时,就会随机选取一个,指定为主节点了.

5.执行主从替换:

1>. leader会控制选取的新的主节点执行slaveof no one命令,让自己成为主节点;

2>. 让剩余从节点执行slaveof  ip  port命令.进行主节点切换;

3>. 再通知客户端程序,告知新的主节点,后续读写操作在新的主节点上执行.

哨兵节点并不存储数据,只是监控作用,并且在实际开发中,必须将其部署在不同的机器上,否则当机器出故障时,所有的哨兵节点就会全军覆膜了.是无法发挥作用的.

http://www.dtcms.com/a/271454.html

相关文章:

  • 操作系统核心技术剖析:从Android驱动模型到鸿蒙微内核的国产化实践
  • HashMap的Get(),Put()源码解析
  • CTFHub————Web{信息泄露[备份文件下载(网站源码、bak文件)]}
  • 微服务架构中数据一致性保证机制深度解析
  • [Backlog] 核心协调器 | 终端用户界面(TUI)实现 | 多分支任务冲突解决 | 测试验证体系
  • vue2中使用xgplayer播放流视频
  • 方差、协方差和协方差矩阵
  • 软件编码规范、运行时错误、安全漏洞与缺陷:解析及库博的检测能力
  • Dify 文本语意识别与自动补全工作流
  • VD6052系列 30V 200mA的低功耗稳压器芯片 适用12V/24V供电MCU
  • 腾讯0708面试手撕题:严格递增数字分割
  • 17-C#封装,继承,多态与重载
  • git配置密钥
  • MTK-系统设置Settings 开机累计时长源码分析
  • AI芯片产品经理:算力革命的架构师
  • Mysql底层专题(七)MVCC多版本并发控制机制
  • STM32-定时器输入捕获
  • 高级LoRA:面向垂直领域LLM的实战微调指南——LoRA合并、续训、堆叠,Checkpoint管理
  • 佰力博PEAI压电分析仪-精准测量压电材料d33系数
  • RAG实战指南 Day 11:文本分块策略与最佳实践
  • HCIP(综合实验)
  • 腾讯位置商业授权未来驾车ETA(批量)
  • Fluent许可配置常见问题
  • ARM汇编编程(AArch64架构)课程 - 第8章:控制流与循环
  • 数字化管理新趋势:权限分级看板如何筑牢安全防线
  • 【Java】【力扣】【字节高频】3.无重复字符的最长字串
  • HTTP API 身份认证
  • 【Qt】Qt QML json处理
  • 微信获取access_token授权的两种不同情况
  • 零成本实现文本转语音