Redis哨兵模式(理论+实操)

Redis哨兵模式

  • 哨兵的核心功能:在主从复制的基础上,哨兵引入了主节点的自动故障转移

原理

哨兵sentine 是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的master并将所有的slave连接到新的master,所以整个运行哨兵的集群的数量不得少于三个节点。
在这里插入图片描述

作用

监控:

哨兵会不断的检查主节点和从节点是否运作正常

自动故障转移:

当主节点不能正常工作时,哨兵会开始自动故障转移操作,会将失效主节点的其中一个从节点审计为新的主节点,并让其他从节点改为复制新的主节点。
通知/提醒:

哨兵可以将故障转移的结果发送给客户端

结构(哨兵节点&&数据节点)

哨兵节点:哨兵系统由一个或者多个哨兵节点组成,而哨兵节点是由特殊的redis节点,不存储数据
数据节点:主节点和从节点都是数据节点
哨兵的启动依赖于主从模式—>所以要做好主从后做哨兵模式,所有节点上都需要部署哨兵模式,哨兵模式会监控所有的redis工作节点是否正常,当master出现问题的时候,因为其他节点与主节点失去联系,所以会投票,投票过半就会认为这个master的却出现问题后会通知哨兵键,然后从slave中选取一个作为新的master

  • 注意,客观下线是主节点才有的概念,如果从节点和哨兵节点发生故障,被哨兵主关下线后,不会再有后续的客观下线和故障转移操作

哨兵模式的搭建

环境配置
基于主从复制搭建

master 192.168.3.12
slave 192.168.3.13
slave 192.168.3.14
以上都需要安装redis包

修改 Redis 配置文件(所有节点操作)

systemctl stop firewalld
setenforce 0

vim /opt/redis-5.0.7/sentinel.conf
protected-mode no								#17行,关闭保护模式
port 26379										#21行,Redis哨兵默认的监听端口
daemonize yes									#26行,指定sentinel为后台启动
logfile "/var/log/sentinel.log"					#36行,指定日志存放路径
dir "/var/lib/redis/6379"						#65行,指定数据库存放路径
sentinel monitor mymaster 192.168.3.12 6379 2	#84行,修改 指定该哨兵节点监控192.168.184.10:6379这个主节点,该主节点的名称是mymaster,最后的2的含义与主节点的故障判定有关:至少需要2个哨兵节点同意,才能判定主节点故障并进行故障转移
sentinel down-after-milliseconds mymaster 30000	#113行,判定服务器down掉的时间周期,默认30000毫秒(30秒)
sentinel failover-timeout mymaster 180000		#146行,故障节点的最大超时时间为180000(180秒)

启动哨兵模式,先启master,再启slave

cd /opt/redis-5.0.7/
redis-sentinel sentinel.conf &
注意!先启动主服务器,再启动从服务器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

故障模拟

查看redis-server进程号

[root@localhost redis-5.0.7]# ps aux |grep redis
root      18913  0.1  0.1 156404  7412 ?        Ssl  15:07   0:01 /usr/local/redis/bin/redis-server 0.0.0.0:6379
root      38894  0.2  0.1 153844  7588 ?        Ssl  15:22   0:00 redis-sentinel *:26379 [sentinel]
root      45522  0.0  0.0 112680   984 pts/3    S+   15:27   0:00 grep --color=auto redis
[1]+  完成                  redis-sentinel sentinel.conf

在这里插入图片描述

杀死 Master 节点上redis-server的进程号

kill -9 18913			#Master节点上redis-server的进程号

在这里插入图片描述

在这里插入图片描述

redis-cli -p 26379 INFO Sentinel

显示192.168.3.13已经成为新master
在这里插入图片描述

总结

哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例
哨兵模式优缺点
优点:
1、哨兵集群,基于主从复制模式,所有的主从配置优点,它都有
2、主从可以切换,故障可以转移,高可用性的系统
3、哨兵模式就是主从模式的升级,手动到自动,更加健壮
缺点:
1、Redis不好在线扩容的,集群容量一旦到达上限,在线扩容就十分麻烦
2、哨兵模式的配置繁琐

Guess you like

Origin blog.csdn.net/xiaobai316/article/details/121247244