哨兵模式
什么是哨兵模式?
哨兵(sentinel)是一个分布式系统,在主从结构中对服务器进行监控,当服务器发生故障时,投票选举中新的master服务器,并将所有slave服务器连接到的master服务器。
哨兵的作用?
监控:不断检查master和salve的运行情况
通知:当服务器发生故障时,向其他(哨兵,客户端)发送通知
自动故障转移:中断slave和master之间的联系,选举出一个新的master,并将salve连接到新的master服务器
注意:哨兵也是一台服务器,不提供数据服务,通常是单数
监控阶段:
通知阶段:
状态转移阶段
发现故障: 第一个哨兵(sentinel1)发现master节点挂了,将master标记为SRI_S_DOWN主观下限,并通知其他sentinel,其他sentinel确认master挂了后,将master的标记为SRI_O_DOWN客观下线,并开始选举新的master节点。
选举阶段:1.首先sentinels内部选举出一个sentisnel
2.根据以下规则机制,选举出一个新的master服务器 :在线的、响应快的、与原master未断开的、优先原则(offset、runid)
发送指令:1.向新的master发送salveof no one 2.向其他slave发送slaveof新的masterIP端口