0

0

Redis如何排查哨兵无法选出新主库_检查Quorum设置是否大于当前存活的哨兵节点数

P粉602998670

P粉602998670

发布时间:2026-03-13 10:36:01

|

732人浏览过

|

来源于php中文网

原创

missing+quorum表示哨兵故障转移因在线节点数不足quorum值而卡死,根本原因是存活哨兵数<配置的quorum值,需用SENTINEL ckquorum验证并逐台SENTINEL set更新,不可仅改配置文件。

redis如何排查哨兵无法选出新主库_检查quorum设置是否大于当前存活的哨兵节点数

哨兵日志里反复出现 missing+quorum 是什么信号

这说明哨兵集群在尝试发起故障转移时,无法凑够法定票数(quorum),直接卡死。根本原因不是主库挂了,而是参与投票的哨兵节点数 少于 quorum 配置值——比如你设了 quorum 3,但当前只有 2 个哨兵在线,那永远投不出结果。

常见错误现象:
• 主库已宕机,但从库没升主,整个集群只读
SENTINEL masters 显示 failover-abort-no-good-slave 或压根没触发 failover
SENTINEL sentinels <master-name> 返回的哨兵列表明显少于预期

  • 检查实际存活哨兵数:用 redis-cli -p 26379 SENTINEL sentinels mymaster 看返回几条记录,不是看进程或容器数量
  • quorum 值必须 ≤ 当前可通信哨兵节点数,建议设为 ⌈N/2⌉ + 1(N 是部署的哨兵总数),例如 5 个哨兵,quorum 设 3;3 个哨兵就只能设 2
  • 别把 quorum 和哨兵总数量混淆——它只是“最少需要几个同意”,不是“总共要部署几个”

为什么改完 sentinel.confquorum 还不生效

哨兵不会热重载 quorum 配置。这个值只在初始化连接和收到其他哨兵的 hello 消息时协商确认,改完配置不重启等于白改。

使用场景:滚动更新哨兵、临时扩容/缩容、修复误配

  • 必须逐台执行 redis-cli -p 26379 SENTINEL set mymaster quorum <new-value>,而不是改文件后 reload
  • 执行后立刻用 SENTINEL master mymaster 查看 quorum 字段是否更新,注意它显示的是当前协商出的有效值,不是配置文件里的原始值
  • 如果某台哨兵长期失联,它上次广播的 quorum 可能被缓存,新哨兵加入后需等待 sentinel monitor 配置同步完成才能参与投票

SENTINEL ckquorum 能查什么,不能查什么

这是唯一能快速验证当前 quorum 是否可达成的命令,但它只做静态检查:确认「活着的哨兵数 ≥ 配置的 quorum 值」,不模拟故障转移全流程。

Cliclic AI
Cliclic AI

Cliclic商品背景图编辑器是一款功能强大的AI工具,帮助用户快速生成具有吸引力的商品图背景。

下载

性能 / 兼容性影响:毫秒级响应,无副作用,Redis 3.2+ 支持

  • 运行 SENTINEL ckquorum mymaster,返回 OK 表示票数够,ERR 表示不够(并提示缺几个)
  • 它不检查网络分区——比如 3 个哨兵物理都在线,但 A 和 B 能通、C 只能和 A 通,此时 ckquorum 可能返回 OK,但真实故障转移仍可能失败
  • 它不校验从库状态,哪怕所有哨兵都在线,若没有健康从库(比如全部 slave-priority 0 或延迟超限),照样无法选主

哨兵节点数少于 3 时的现实约束

2 个哨兵 + quorum 2 理论可行,但极脆弱:任意一个哨兵短暂失联,quorum 就立即失效。生产环境几乎没人这么干。

容易踩的坑:
• 在测试环境用 1 个哨兵 + quorum 1,上线后照搬配置,结果一节点抖动就脑裂
• Kubernetes 里用 StatefulSet 部署 3 个哨兵,但没配反亲和性,全调度到同一台 Node,Node 故障导致全部离线

  • 最低可用组合是 3 哨兵 + quorum 2,容忍 1 个节点故障
  • 如果只能部署 2 个哨兵,quorum 必须设为 1,但必须接受「单点判定即生效」的风险——比如网络抖动导致哨兵误判主库下线,会直接切主
  • 监控项要盯紧 sentinel_mastersnum-sentinelsnum-slaves,这两个数字突降比 CPU 或内存告警更致命

quorum 不是调得越大越安全,它和哨兵存活率是硬冲突。真正难的不是算数字,是让每个哨兵在各种网络条件下都能稳定交换 hello 消息——这点常被忽略。

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1007

2023.11.02

内存数据库有哪些
内存数据库有哪些

内存数据库有Redis、Memcached、Apache Ignite、VoltDB、TimesTen、H2 Database、Aerospike、Oracle TimesTen In-Memory Database、SAP HANA和ache Cassandra。更多关于内存数据库相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

673

2023.11.14

mongodb和redis哪个读取速度快
mongodb和redis哪个读取速度快

redis 的读取速度比 mongodb 更快。原因包括:1. redis 使用简单的键值存储,而 mongodb 存储 json 格式的数据,需要解析和反序列化。2. redis 使用哈希表快速查找数据,而 mongodb 使用 b-tree 索引。因此,redis 在需要高性能读取操作的应用程序中是一个更好的选择。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

501

2024.04.02

redis怎么做缓存服务器
redis怎么做缓存服务器

redis 作为缓存服务器的答案:redis 是一款开源、高性能、分布式的键值存储,可作为缓存服务器使用。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

413

2024.04.07

redis怎么解决数据一致性
redis怎么解决数据一致性

redis 提供了两种一致性模型,以维护副本数据一致性:强一致性 (sync) 确保写操作仅在复制到所有从节点后才完成;最终一致性 (async) 则在主节点上写操作后认为已完成,牺牲一致性换取性能。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

408

2024.04.07

mysql和redis怎么保证双写一致性
mysql和redis怎么保证双写一致性

确保 mysql 和 redis 双写一致性的技术包括:1、事务性更新:同时更新 mysql 和 redis,保证一致性;2、主从复制:mysql 主服务器更改同步到 redis 从服务器;3、基于事件的更新:mysql 记录更改并发送到 redis等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

484

2024.04.07

redis缓存一般存些什么数据
redis缓存一般存些什么数据

redis缓存中存储的数据类型包括:字符串、哈希、列表、集合、有序集合、位图、地理空间数据和hyperloglog。这些数据类型适用于存储各种数据,从简单信息到复杂对象和地理位置。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

425

2024.04.07

redis的8种数据类型有哪些
redis的8种数据类型有哪些

redis 提供 8 种数据类型:字符串(文本、数字、二进制)、哈希(键值对)、列表(有序集合)、集合(无序唯一元素)、有序集合(按分数排序)、地理空间(地理位置)、hyperloglog(估计大数据基数)和位图(位序列存储)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

450

2024.04.07

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

26

2026.03.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号