redis小本本之sentinel(五)

redis中的哨兵(Sentinel):
redis中的sentinel可以对主从服务器进行监控,并在主服务器挂掉之后,及时的将从服务器之一升级为主服务器,并将其他从服务器设置为新主服务器的从服务器。
一、 实现原理:
(1)使用./redis-server sentinel.conf 可以以sentinel模式启动redis,其中sentinel.conf中配置的port为redis服务端的实际端口
(2)多个sentinel可以监控同一个服务器
(3)sentinel每10秒对监控的主服务器发起INFO请求,主服务器收到INFO请求后,将自己的ip,port,对应的从服务器的信息发回给此sentinel,sentinel根据返回信息更新自己保存的信息
(4)sentinel每10秒对监控的从服务器发起INFO请求,从服务器收到INFO请求后,将自己的ip,port,对应的主服务器的信息和一些运行状态发回给此sentinel,sentinel根据返回信息更新自己保存的信息
(5)sentinel每2秒对监控的主服务器和从服务器发送命令连接,此命令中包含当前sentinel本身的信息和其监听的主服务器的信息。这个命令连接也会被发送到监控同一个服务器的其他sentinel上,其他sentinel接收到这个信息之后检查其运行ID,如果与自身相同,说明是自己发的,丢弃。否则判断其内容是否与自己保存的信息相同,如果不相同,更新自己的信息。
(6)sentinel每1秒向所有连接的实例发送PING命令,如果某台服务器在down-after-milliseconds毫秒内没有响应,则此服务器被此sentinel认定为主观下线,但是因为每个sentinel设置的down-after-milliseconds的时间不一样,可能这个sentinel认为它主观下线了,但是其他sentinel认为它还活着,这时就需要监听此台服务器的各个sentinel相互沟通,在sentinel.conf配置文件中,命令sentinel monitor <master-name> <ip> <redis-port> <quorum>中的quorum记录最小客观下线的sentinel个数,即至少有quorum个sentinel都认为此服务器主观下线了,这台服务器被认定客观下线。
(7)如果某台服务器被认定客观下线了,就需要在监听此主服务器的众多sentinel中选择一个主sentinel来进行故障转移操作,楼下为主sentinel的选择方式。
二、 主sentinel的筛选:
(1)主sentinel的筛选采用投票制,即监听这个客观下线的服务器的所有的sentinel进行投票,得票数多于一半的为主sentinel
(2)每个发现主服务器进入到客观下线状态的sentinel都可以参加竞选,参加竞选的sentinel给其他的sentinel发送命令说“你们选我,你们选我,好处大大的有”,其他sentinel收到这个命令后给一个回复说:“嗯好的,我选你了,苟富贵莫相忘”此回复命令中带着被选主sentinel的id号
(3)竞选者收到回复后,就偷偷的计算自己的得票数,如果超过半数,就赢了
(4)如果在给定的时间内,没有主sentinel被选中,就隔一段时间再选,直至选择出结果。
三、 主服务器的筛选:
(1)主sentinel选择出来之后,他就身负重任了,就需要他来执行故障转移操作,即在所有剩下的从服务器中选择一个作为新的主服务器
(2)主sentinel先将所有的从服务器排成一排,依次筛选
(3)首先将已经挂掉的删掉
(4)然后将最近5秒内没有回复过主sentinel的干掉(跟领导处好关系是多么重要)
(5)然后将与挂掉的主服务器在down-after-milliseconds*10的时间内没有沟通过的干掉(你都不服老领导的管教,还能听我的话?弄死你)
(6)从剩下的选出复制偏移量最大的,运行ID最小的
(7)这样就选出了新的主服务器,将所有其他的从服务器使用SLAVEOF命令,改到新领导门下,然后将原来的挂掉的那个主服务器也挂在新的主服务器的门下,防止它醒来跟新领导抢位。
至此,一次sentinel故障转移操作执行结束!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值