哨兵
哨兵是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障的通过投票机制选择新的master,并将所有的slave连接到新的master
哨兵也只是一个redis服务器,最好时单数
哨兵作用
监控
不断监控检查master和slave是否正常运行,
master存活检测,master与slave运行情况检测
通知
当监控的服务器出现问题,向其他(哨兵)发送通知
自动故障转移
断开master和slave连接,选取一个slave作为master,将其他slave连接到新的master,并告知客服端新的服务器地址
哨兵工作原理
监控
同步各个节点的状态信息
获取各个哨兵信息 ping
获取master信息 info /runid role:master 各个slave的信息
获取所有slave的信息 runid role master_host
通知阶段
故障转移阶段
发现故障
哨兵选主
选取slave成为master
找在线的
响应快的
与原来master断开短的
优先原则:优先级 offset runid谁比较小
将slave上升到master
再将其他slave连接到新的master