课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
Redis集群是我们在学习计算机编程开发技术的时候需要重点掌握的一个编程知识,而今天我们就通过案例分析来了解一下,Redis集群节点选举步骤。
Redis集群中的节点分为主节点(master)和从节点(slave),主节点主要负责处理槽,从节点则用于复制某个主节点数据,并在被复制的主节点下线时,代替主节点处理后续的命令请求。
如果一个节点被认为客观下线了,那么就需要从它的从节点当中选出一个节点来代替它成为主节点。选举过程如下:
a.当从节点发现自己正在复制的主节点被标记为客观下线时,从节点会向集群中发送一条CLUSTERMSG_TYPE_FAILOVER_AUTH_REQUEST消息,要求所有收到这条消息的具有投票权的主节点向这个从节点投票
b.如果一个主节点具有投票权,并且未投票给其他从节点,那么这个主节点会向要求投票的从节点返回一条CLUSTERMSG_TYPE_FAILOVER_AUTH_ACK消息,表示这个主节点支持该从节点成为新的主节点
c.每个从节点都会接收返回的CLUSTERMSG_TYPE_FAILOVER_AUTH_ACK消息,并会进行统计自己得到了多少主节点的支持
d.每个具有投票权的主节点只能投一次票,当一个从节点获得了一半以上的主节点的支持票时,那么这个节点就会成为新的主节点,
e.如果没有任何一个从节点获取大于半数的投票,那么将进行新的选举,直到选出新的主节点为止。
f.新的主节点产生后,它会撤销所有对已下线的主节点的槽指派,并将这些槽指派给自己。
g.新的主节点会向集群中广播一条PONG消息,让集群中的其他节点直到这个从节点已经成为了新的主节点,并且接管了原先主节点的所有槽。
h.新的主节点负责接收和自己处理的槽相关的指令,至此故障转移结束。