扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
本篇内容介绍了“redis故障转移流程是什么意思”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
成都创新互联公司专注于宽甸网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供宽甸营销型网站建设,宽甸网站制作、宽甸网页设计、宽甸网站官网定制、小程序设计服务,打造宽甸网络公司原创品牌,更为您提供宽甸网站排名全网营销落地服务。
sentinel初始化
初始化sentinel状态里的masters属性
创建连向各个master的网络连接(命令连接、订阅连接)
sentinel向配置的masters发送info命令(每10秒):获取master及slave信息
更新master实例结构
更新master实例结构里的slave信息
创建连向各个slave的网络连接(命令连接、订阅连接)
sentinel向slaves发送info命令(每10秒):获取slave信息
更新master实例结构里的slave信息
sentinel向所有的master和slave的__sentinel__:hello频道发布消息(每2秒):
sentinel订阅主从服务器的频道信息:获取其他sentinel信息
更新master实例结构里的sentinels信息
创建连向各个sentinel的网络连接(命令连接)
sentinel向所有已知的master/slave/sentinel发送ping命令(每1秒):心跳检测
主观下线:节点在down-after-milliseconds均未返回有效回复
更新master实例结构的flags属性:SRI_S_DOWN
不同sentinel设置的主观下线时长可能不同:down-after-milliseconds
向同样监控该master的其他sentinel发送下线询问命令:SENTINEL is-master-down-by-addr
客观下线:主观下线的sentinel数量达到quorum
不同sentinel设置的quorum可能不同
sentinel选主
raft算法
进入客观下线的sentinel,向其他sentinel发送SENTINEL is-master-down-by-addr
当runid不是*而是源sentinel的运行ID时,表明源sentinel要求目标sentinel将自己设为局部leader
设置局部leader的规则是先到先得
票数大于半数,则成为leader
sentinel leader做故障转移:连接断开时间、优先级、offset、run_id
sentinel leader向选举出来的slave发送slaveof no one命令,变成leader
sentinel leader向其他slave发送命令,使其转为新leader的slave
sentinel leader对旧master做心跳检测,当其恢复后使其转为新leader的slave
node加入集群后,使用gossip算法完成集群中信息同步
node与集群中所有主节点互相做心跳检测
疑似下线
已下线(半数主节点)
广播node fail的消息
故障转移
故障node的从节点选主,投票人是集群中的主节点
新的节点升级为主节点
撤销已下线主节点的槽指派,并全部指派给自己
广播PONG消息,通知集群新的主节点,及槽指派
旧的主节点恢复后,成为新的主节点的slave
“Redis故障转移流程是什么意思”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流