您当前的位置: 首页 >  redis

115分布式电商项目 - Redis集群(故障转移)

杨林伟 发布时间:2019-07-22 17:46:51 ,浏览量:2

1.故障机制

1、集群中的每个节点都会定期的向其它节点发送PING命令,并且通过有没有收到回复判断目标节点是否下线;

2、集群中每一秒就会随机选择5个节点,然后选择其中最久没有响应的节点放PING命令;

3、如果一定时间内目标节点都没有响应,那么该节点就认为目标节点疑似下线;

4、当集群中的节点超过半数认为该目标节点疑似下线,那么该节点就会被标记为下线;

5、当集群中的任何一个节点下线,就会导致插槽区有空档,不完整,那么该集群将不可用;

如何解决上述问题? 1.在Redis集群中可以使用主从模式实现某一个节点的高可用。 2.当该节点(master)宕机后,集群会将该节点的从数据库(slave)转变为(master)继续完成集群服务;

2.集群中的主从复制架构

架构: 在这里插入图片描述

出现故障: 在这里插入图片描述

3.创建主从集群

需要启动6个redis实例,分别是: 6379(主) 6479(从) 6380(主) 6480(从) 6381(主) 6481(从) 在这里插入图片描述 启动redis实例:

cd 6379/ && redis-server ./redis.conf && cd ..
cd 6380/ && redis-server ./redis.conf && cd ..
cd 6381/ && redis-server ./redis.conf && cd ..
cd 6479/ && redis-server ./redis.conf && cd ..
cd 6480/ && redis-server ./redis.conf && cd ..
cd 6481/ && redis-server ./redis.conf && cd ..

在这里插入图片描述 创建集群,指定了从库数量为1,创建顺序为主库(3个)、从库(3个): ./redis-trib.rb create --replicas 1 192.168.56.102:6379 192.168.56.102:6380 192.168.56.102:6381 192.168.56.102:6479 192.168.56.102:6480 192.168.56.102:6481 在这里插入图片描述 在这里插入图片描述 创建成功!查看集群信息: 在这里插入图片描述

4.测试

在这里插入图片描述 保存、读取数据OK! 查看下6480的从库数据: 在这里插入图片描述 看到从6480查看数据也是被重定向到6380.

说明集群一切运行OK!

5.测试集群中slave节点宕机

我们将6480节点kill掉,查看情况。 在这里插入图片描述 查看集群情况: 在这里插入图片描述 发现6480节点不可用。

那么整个集群可用吗? 在这里插入图片描述

发现集群可用,可见从数据库宕机不会影响集群正常服务。

恢复6480服务: 在这里插入图片描述 测试6480中的数据: 在这里插入图片描述 看到已经更新成最新数据。

6.测试集群中master宕机

假设6381宕机: 在这里插入图片描述 查看集群情况: 在这里插入图片描述 发现: 1、6381节点失效不可用 2、6481节点从slave转换为master

测试集群是否可用: 在这里插入图片描述 集群可用。

恢复6381: 发现: 1、6381节点可用 2、6481依然是主节点 3、6381成为6481的从数据库

关注
打赏
1688896170
查看更多评论

杨林伟

暂无认证

  • 2浏览

    0关注

    3183博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0889s