redis复制和故障转移

举报
周杰伦本人 发表于 2022/06/26 14:22:02 2022/06/26
【摘要】 redis复制和故障转移redis群集的节点分为主节点和从节点,主节点用于处理插槽,从节点复制主节点,如果主节点出现故障而脱机,则代替脱机主节点 节点是如何复制的?使用CLUSTER REPLICATE nodeid命令使节点成为nodeid节点的从节点。 此节点的clusterState的myself的slaveof属性指向此nodeid的clusterNode,myself的fla...

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消息来让其他主节点知道自己已经是主节点了,新的主节点处理自己负责的槽位的相关命令。

❤️ 感谢大家

如果你觉得这篇内容对你挺有有帮助的话:

  1. 欢迎关注我❤️,点赞👍🏻,评论🤤,转发🙏
  2. 关注盼盼小课堂,定期为你推送好文,还有群聊不定期抽奖活动,可以畅所欲言,与大神们一起交流,一起学习。
  3. 有不当之处欢迎批评指正。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。