redis复制和故障转移
redis复制和故障转移
redis群集的节点分为主节点和从节点,主节点用于处理插槽,从节点复制主节点,如果主节点出现故障而脱机,则代替脱机主节点
节点是如何复制的?
使用CLUSTER REPLICATE nodeid命令使节点成为nodeid节点的从节点。 此节点的clusterState的myself的slaveof属性指向此nodeid的clusterNode,myself的flags属性id更改为redis_node_
如何检测节点是否脱机
集群中的每个节点通过发送PING消息检测对方是否离线,如果能返回PONG消息则表示正常,如果在规定时间内不返回PONG消息,则将该节点标记为涉嫌离线如果确定具有超过集群一半主节点的节点涉嫌脱机,则该节点被标记为脱机,并且该节点向集群广播其故障消息。
故障切换
接下来是故障切换。 更具体地说,从主节点的所有从节点中选择一个节点,然后运行SLAVEOF no one命令使其成为主节点。 新的主节点接管脱机节点的时隙分配,并向群集广播PONG消息,以告知其他节点自己是主节点。 然后,该主节点接收并处理自己插槽中的命令,以完成故障转移。
新的主节点是如何从从节点中选择的呢?
基于Raft算法的leader选举方法的实现,首先有一个表示该投票的配置纪元,当从节点发现主节点的下划线时,向集群广播消息,并向收到消息的其他没有投票给你的主节点
总结
这就是redis的复制和故障转移的相关知识点,通过发送PING PONG命令来检测节点是否下线,通过RAFT算法选举出leader来进行故障的转移,投票机制,新的主节点会向集群中广播PONG消息来让其他主节点知道自己已经是主节点了,新的主节点处理自己负责的槽位的相关命令。
❤️ 感谢大家
如果你觉得这篇内容对你挺有有帮助的话:
- 欢迎关注我❤️,点赞👍🏻,评论🤤,转发🙏
- 关注
盼盼小课堂
,定期为你推送好文,还有群聊不定期抽奖活动,可以畅所欲言,与大神们一起交流,一起学习。 - 有不当之处欢迎批评指正。
- 点赞
- 收藏
- 关注作者
评论(0)