主从复制高可用性-哨兵
哨兵sentinel
1、Sentinel
哨兵模式就是我们常讲的主从切换技术了,在哨兵模式没出来前,当我们的主服务器宕机了之后,需要人为的去将从机切换成主机去顶一下,在从机中输入命令:slaveof no one ,让 从机 篡位 成为 主机,而主从机的区别就是主机能”写、读“,而从机只能”读“,而人为干预主从切换会造成一段时间内服务不可以使用的问题,于是在Redis2.8之后正式的提供了Sentinel(哨兵模式)架构来解决这个问题,所以哨兵模式也可以理解为:当 某门派大佬驾崩的时候,根据门派内的投票数直接让新老大上位
哨兵模式是一个独立的进程,做为进程,它会独立运行,原理就是通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis主从机.
sentinel,哨兵的意思,sentinel技术就是给Redis主实例,创建几个哨兵盯着,一般至少需要三个,一旦这些哨兵监测出主服务器宕机了,其中一个哨兵进程就会被选举出来负责推选一个从实例来代替坏掉的主实例,如果配置得当,这些动作都将是计算机自动完成,不需要人工来干预,这样子高可用的特性就出来了。
2、接着上章课程的环境,3台主机,分别配置上redis和sentinel服务。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nqEFWpjF-1682051775976)(1681855947728.png)]
3、具体配置sentinel
注意:要让所有主从服务器能交互,能被除本机意外的其他计算机访问,
bind 127.0.0.1 可以是注释掉,也可以把要绑定的ip地址追加上去:bind 127.0.0.1 192.168.238.5(云服务器不行的)
操作:
1)在三台服务器上都要做的:复制源码包里的sentinel.conf配置文件,把它复制到安装目录去,这是钟洪发老师安装时没复制了bin和redis.conf到安装处,我一般全都解压到一块了。
//注意这些配置:
port 26379 //默认端口26379
logfile "/usr/local/redis/log/sentinel.log"
sentinel monitor Mymater 192.168.238.4 6379 2
//该行的意思是:监控的master的名字叫做Mymater (自定义),
//地址为192.168.238.4:6379主服务器,行尾最后的一个2代表在sentinel集群中,多少个sentinel认为masters死了,才能真正认为该master不可用了。
daemonize yes
sentinel down-after-milliseconds Mymater 15000
//sentinel会向master发送心跳PING来确认master是否存活,
//如果master在“一定时间范围”内不回应PONG 或者是回复了一个错误消息,
//那么这个sentinel会主观地(单方面地)认为这个master已经不可用了。
//而这个down-after-milliseconds就是用来指定这个“一定时间范围”的,单位是毫秒,默认30秒。
sentinel failover-timeout Mymater 120000