主从复制+哨兵
主节点和从节点断开有两种方式
1.slaveof no one配置项断开,这时候从节点会自动晋升为主节点
2.主节点挂掉,这时候从节点不会晋升为主节点。必须人为干预恢复
问题:但是人为干预要考虑各自环境问题,而且人不是24小时都能监控的,可以因为人为干预造成更大问题,所有这时候引入哨兵模式。
哨兵选举原理
当主节点和哨兵出现断开连接,哨兵会跟主节点进行一个心跳包的连,如果连接不上,接发现的这个哨兵就会判断主节点主观下线,然后再让其他哨兵进行一个判断,如果节点投票数大于一般,就判定这个主节点客观下线,然后几个哨兵中,会进行一个领导选拔,选出一个领导哨兵,进行从节点升为主节点的工作,进行slave of 配置的改动。修改完后,还会自动通知客户端程序,现在主节点是谁,方便客户端更换连接节点,对新的节点操作。
选取那个从节点变为主节点:
优先级 每个节点配置中都有一个优先级的设置,slave-priority,优先级高的会被优先选出
如果优先级意义,就会根据offset的情况,看谁和主节点的数据同步最一致就选择谁,如果上述都一样,就随机选一个。
哨兵的部署数量及原因:
最好部署奇数并且不要单点部署
注意事项:
最好部署奇数并且不要单点部署
1:因为奇数方便我们投票,防止投成平票。部署一个哨兵,万一哨兵挂了呢,后序就无法继续监听了。
2:为了防止误判,网络短暂的波动,哨兵误判了呢。降低了误判概率
3: 哨兵于主节点之间是长连接,用心跳包监视。