96SEO 2026-02-19 19:42 0
由兵王开始推动故障切换流程并选出一个新的master5.4.1

步骤1新主登基(某个Slave被选中成为新的Master)5.4.2
Redis是一种流行的内存数据库具有快速、灵活和可扩展的特性。
然而在应用程序对数据可用性和可靠性要求更高时Redis主从复制会遇到一些限制和弊端主机宕机之后整个redis服务只能读不能写。
为了解决这些问题Redis引入了哨兵模式。
实例的状态并自动进行故障转移提供了客户端重定向机制以确保应用程序可以正常访问
三个哨兵自动监控和维护集群不存放数据只做吹哨人1主2从用于读取和存放数据
主从监控监控reids主从是否正常运行消息通知哨兵可以将故障转移的结果发送给客户端故障转移如果Master异常则会进行主从切换将其中一个Slave作为新的Master配置中心客户端通过连接哨兵来获得当前Redis服务的主节点地址
在/myredis目录下创建sentinel26379.conf也可以从redis的解压路径中复制sentinel.conf配置文件来重命名内容如下
/var/run/redis-sentinel26379.pid
#设置要监控的master服务器quorum表示最少有几个哨兵认可客观下线同意故障迁移的法定票数
#指定多少毫秒之后主节点没有应答哨兵此时哨兵主观上认为主节点下线
milliseconds#表示允许并行同步的slave个数当Master挂了后哨兵会选出新的Master此时剩余的slave会向新的master发起同步数据
nums#故障转移的超时时间进行故障转移时如果超过设置的毫秒表示故障转移失败
milliseconds#配置当某一事件发生时所需要执行的脚本
script-path同样的在/myredis目录下创建sentinel26380.conf内容如下
/var/run/redis-sentinel26380.pid
#设置要监控的master服务器quorum表示最少有几个哨兵认可客观下线同意故障迁移的法定票数
123456同样的在/myredis目录下创建sentinel26381.conf内容如下
/var/run/redis-sentinel26381.pid
#设置要监控的master服务器quorum表示最少有几个哨兵认可客观下线同意故障迁移的法定票数
上述图片是哨兵26379的配置文件变化其它两个哨兵的配置文件也是类似变化这里就不在赘述。
我们能明显的看到6379的主观下线选举leader以及主master切换的日志
三个哨兵配置文件的变化2个从机配置文件发生了变化6379启动之后也能看到发生了变化
那我们还有一个疑问就是6379主机master恢复之后目前这种主从结构会不会发生变化了我们重新启动6379redis
当一个主存配置中的master失效之后sentinel可以选举出一个新的master用于自动接替master的工作主从配置中的其他redis服务器自动指向新的master同步数据。
一般建议sentinel采取奇数台防止某一台sentinel无法连接到master导致误切换
SDown(主观不可用)是单个sentinel自己主观上检测到的关于master的状态从sentinel的角度来看如果发送了PING心跳在一定时间内没有收到合法的回复就达到了SDown的条件
sentinel配置文件中的down-after-milliseconds设置了判断主观下线的时间长度
SDOWN指的是单个Sentinel实例对服务器做出的下线判断即单个sentinel认为某个服务下线有可能是接收不到订阅之间的网络不通等等原因。
down-after-milliseconds]给定的毫秒数之内没有回应PING命令或者返回一个错误消息
那么这个Sentinel会主观的(单方面的)认为这个master不可以用了sentinel
timeout表示master被当前sentinel实例认定为失效的间隔时间这个配置其实就是进行主观下线的一个依据master在多长时间内一直没有给Sentine返回有效信息则认定该master主观下线。
也就是说如果多久没联系上redis-servevr认为这个redis-server进入到失效SDOWN状态5.2.
ODown需要一定数量的sentinel多个哨兵达成一致意见才能认为一个master客观上已经宕机
四个参数含义masterName是对某个masterslave组合的一个区分标识(一套sentinel可以监听多组masterslave这样的组合)quorum这个参数是进行客观下线的一个依据法定人数/法定票数意思是至少有quorum个sentinel认为这个master有故障才会对这个master进行下线以及故障转移。
因为有的时候某个sentinel节点可能因为自身网络原因导致无法连接master而此时master并没有出现故障所以这就需要多个sentinel都一致认为该master有问题才可以进行下一步操作这就保证了公平性和高可用5.3.
当主节点被判断客观下线以后各个哨兵节点会进行协商先选举出一个领导者哨兵节点兵王并由该领导者节点也即被选举出的兵王进行failover(故障迁移)
监视该主节点的所有哨兵都有可能被选为领导者选举使用的算法是Raft算法Raft算法的基本思路是先到先得
即在一轮选举中哨兵A向B发送成为领导者的申请如果B没有同意过其他哨兵则会同意A成为领导者
上图理解横向是时间轴sentinel1向sentinel2、sentinel3发起成为领导者申请sentinel2和sentinel3之前没有同意过别的sentinel所以直接同意故而sentinel得到两票同理sentinel2向sentinel1和sentinel3发起成为领导者的申请之前sentinel3同意过sentinel1的申请所以sentinel只能获得1票sentinel3向sentinel1和sentinel2发起成为领导者的申请由于sentinel1和sentinel2都同意过别的sentinel故而sentinel3只能获得0票
redis.conf文件中优先级slave-priority或者replica-priority最高的从节点数字越小优先级越高
noe命令让选出来的从节点成为新的master并通过slaveof命令让其他节点成为从节点Sentinel
leader向其他slave发送命令让剩余的slave成为新的master节点的slave
将之前已下线的老master设置为新选出master的从节点当老master重新上线后它会成为新master的从节点Sentinel
leader会让原来的master降级为slave并恢复正常工作
failover操作均由sentinel自己独自完成完全无需人工干预
哨兵节点的数量应为多个哨兵本身应该集群保证高可用哨兵节点的数量应该为奇数各个哨兵节点的配置应为一致如果哨兵节点部署在Docker等容器里面尤其要注意端口的正确映射哨兵集群主从覅u之并不能保证数据零丢失故障迁移需要一定的时间
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback