故障转移:
在选举产生出领头Sentinel之后,领头Sentinel将对已下线的主服务器执行故障转移操作
该操作包含下面3个步骤:
①在已下线主服务器属下的所有从服务器里面,挑选出一个从服务 器并将其转换为主服务器
②让已下线主服务器属下的所有从服务器改为复制新的主服务器
③将已下线主服务器设置为新的主服务器的从服务器,当这个旧的主服务器重新上线 时,它就会成为新的主服务器的从服务器
一、选出新的主服务器
故障转移操作第一步要做的就是在已下线主服务器属下的所有从服务器中,挑选出一个状态良好、数据完整的从服务器,然后向这个从服务器发送SLAVEOF no one命令,将这个从服务器转换为主服务器
新的主服务器是怎样挑选出来的?
领头Sentinel会将已下线主服务器的所有从服务器保存到一个列表里面,然后按照以下规则,一项一项地对列表进行过滤:
①删除列表中所有处于下线或者断线状态的从服务器,这可以保证列表中剩余的从服务器都是正常在线的
②删除列表中所有最近五秒内没有回复过领头Sentinel的INFO命令的从服务器,这 可以保证列表中剩余的从服务器都是最近成功进行过通信的
③删除所有与已下线主服务器连接断开超过down-after-milliseconds*10毫秒的从服务器:down-after-milli