微服务框架
【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】
分布式缓存
文章目录
- 微服务框架
- 分布式缓存
- 44 Redis 分片集群
- 44.4 故障转移
- 44.4.1 故障转移
- 44.4.2 数据迁移
44 Redis 分片集群
44.4 故障转移
44.4.1 故障转移
当集群中有一个master宕机会发生什么呢?
先使用一个命令监控集群的状态 watch redis-cli -p 7001 cluster nodes
打开一个新的窗口
下面进行操作,上面看监控
让7002 宕机
这是停之前
执行命令 redis-cli -p 7002 shutdown
而且可以看到 笔者这里是8001 升为 了主节点
现在再次启动 7002 redis-server 7002/redis.conf
7002 就真的变小弟了
-
首先是该实例与其它实例失去连接
-
然后是疑似宕机
-
最后是确定下线,自动提升一个slave为新的master:
意思就是,不需要哨兵,集群可以自动完成故障的主从切换
44.4.2 数据迁移
利用cluster failover命令可以手动让集群中的某个master宕机,切换到执行cluster failover命令的这个slave节点,实现无感知的数据迁移。
其流程如下:
手动的Failover支持三种不同模式:
- 缺省:默认的流程,如图1~6歩
- force:省略了对offset的一致性校验
- takeover:直接执行第5歩,忽略数据一致性、忽略master状态和其它master的意见【最暴力】
【举个栗子】
【案例】在7002这个slave节点执行手动故障转移,重新夺回master地位【我真的会笑】
步骤如下:
- 利用redis-cli连接7002这个节点
- 执行cluster failover命令
执行前,7002 还是一个 slave
我直接回车
好家伙,8001 瞬间变 小弟了【这就是手动故障转移】