当slave 发现自己的master 变为FAIL 状态时,便尝试进行Failover,以期成为新的master。由于挂掉的master 可能会有多个slave,从而存在多个slave 竞争成为master节点的过程, 其过程如下:

1.slave 发现自己的master 变为FAIL

2.将自己记录的集群currentEpoch 加1,并广播FAILOVER_AUTH_REQUEST 信息

3. 其他节点收到该信息, 只有master 响应, 判断请求者的合法性, 并发送FAILOVER_AUTH_ACK,对每一个epoch 只发送一次ack

4.尝试failover 的slave 收集FAILOVER_AUTH_ACK

5.超过半数后变成新Master

6.广播Pong 通知其他集群节点。

Redis Cluster 既能够实现主从的角色分配,又能够实现主从切换,相当于集成了Replication 和Sentinal 的功能。

Redis中的Cluster高可用和主从切换原理相关推荐

  1. redis 系列26 Cluster高可用 (1)

    redis 系列26 Cluster高可用 (1) 原文:redis 系列26 Cluster高可用 (1) 一.概述 Redis集群提供了分布式数据库方案,集群通过分片来进行数据共享,并提供复制和故 ...

  2. 解说redis中如何实现高可用

    redis中为了实现高可用(High Availability,简称HA),采用了如下两个方式: 主从复制数据. 采用哨兵监控数据节点的运行情况,一旦主节点出现问题由从节点顶上继续进行服务. 主从复制 ...

  3. redis 系列27 Cluster高可用 (2)

    redis 系列27 Cluster高可用 (2) 原文:redis 系列27 Cluster高可用 (2) 一. ASK错误 集群上篇最后讲到,对于重新分片由redis-trib负责执行,关于该工具 ...

  4. redis系列之——高可用(主从、哨兵、集群)

    Redis系列目录 redis系列之--分布式锁 redis系列之--缓存穿透.缓存击穿.缓存雪崩 redis系列之--Redis为什么这么快? redis系列之--数据持久化(RDB和AOF) re ...

  5. Redis Cluster高可用(HA)集群环境搭建详细步骤

    1.为什么要有集群 由于Redis主从复制架构每个数据库都要保存整个集群中的所有数据,容易形成木桶效应,所以Redis3.0之后的版本添加特性就是集群(Cluster) 2.Redis集群架构说明 架 ...

  6. 面试突击 005 | Redis 是如何实现高可用的?它的实现方式有哪些?「视频版」

    这是我的第 35 篇原创文章 作者 | 老王(javacn666) 这部视频的录制.剪辑.做 PPT.写文稿大约花费了 5 个小时的时间,希望这种形式能被更多的人喜欢,希望这篇文章会给你带来更多的价值 ...

  7. Redis的主从复制与高可用搭建(哨兵模式)

    前言 为什么要使用Redis 首先我们先介绍些redis的基本概念,redis是Nosql数据库,是一个key-value存储系统.虽然redis是key-value的存储系统,但是redis支持的v ...

  8. 带哨兵节点的链_深入学习Redis高可用架构:哨兵原理及实践

    原标题:深入学习Redis高可用架构:哨兵原理及实践 " 在上篇文章<深入学习 Redis 高可用的基石:主从复制>中曾提到,Redis 主从复制的作用有数据热备.负载均衡.故障 ...

  9. 云信私有化方案中如何搭建高可用的日志和监控平台?

    导读 云信公有云系列产品已经稳定运行数年,随着企业对信息安全和数据隔离愈加重视,云信产品私有化课题必然成为云信发展过程中一个的重要分支.依赖虚拟化和容器技术的日臻成熟,云信业务系统已经全面完成私有化, ...

最新文章

  1. 初识Hadoop:大数据与Hadoop概述
  2. AngularJs-指令和指令之间的交互(动感超人)
  3. win2008支持mysql asp.net_Win7、win2008中让IIS7支持asp的方法
  4. php的$符的作用,PHP引用符的用法举例
  5. npm i 报错 'match' of undefined 错误以及删除node_modules失败
  6. 简单的Flash网络游戏源代码
  7. iOS关于上传iTunes store一直卡住终极解决方案
  8. IDEA常用快捷键总结(附导入其他IDE快捷键)
  9. A按键控制LED状态
  10. flink 一次job卡deploying故障解决
  11. TextView实现左边图片右边文字或 上面图片下面文字
  12. Android开发提供两个图片和视频的测试url
  13. win10电脑输入密码就重启,进入无限重启状态详细解决办法
  14. 机器学习VS深度学习,两者区别在哪里?
  15. 优秀广告设计作品常用的几大设计思维
  16. C语言#if、##ifdef、#ifndef的用法详解,C语言条件编译详解
  17. Linux 源码分析 之 raw socket 分析 一 recvfrom过程
  18. FFMPEG 最简滤镜filter使用实例(实现视频缩放,裁剪,水印等)
  19. android 中Service跳转到Activity
  20. windows cmd导出电脑已经连过的wifi密码

热门文章

  1. POJ--2449--Remmarguts#39; Date【dijkstra_heap+A*】第K短路
  2. 新建Eclipse的web工程目录结构和MyEclipse相似的设置
  3. javascript代码解释执行过程
  4. Visual Studio 2005中C++的变化
  5. 基于Axis服务端的webservice客户端实现
  6. 文件上传下载—servlet API实现
  7. Waiting for table metadata lock
  8. cpu核心数的线程数
  9. Linux 实例常用内核网络参数介绍与常见问题处理
  10. 在html页面提交值到动态页面时出现中文值为乱码的解决方案