**哨兵模式 基于 主从复制 模式的基础上,能够实现自动切换主从,从而实现高可用 **
搭建条件:已搭建成功主从复制,如果没搭建,请先点击这个进行搭建成功,再继续操作
架构图
服务器配置
服务器名称 | 节点类型 | ip地址 | 端口 |
---|---|---|---|
主节点master | redis服务 | 172.20.107.252 | 6379 |
从节点slave1 | redis服务 | 172.20.107.252 | 6380 |
从节点slave2 | redis服务 | 172.20.107.252 | 6381 |
sentinel1 | 哨兵服务1 | 172.20.107.252 | 26379 |
sentinel2 | 哨兵服务2 | 172.20.107.252 | 26380 |
sentinel3 | 哨兵服务3 | 172.20.107.252 | 26381 |
- 配置文件
- sentinel_26379.config
#配置端口
port 26379
#以守护进程模式启动
daemonize yes
#日志文件名
logfile "sentinel_26379.log"
#存放备份文件以及日志等文件的目录 目录记得先创建好
dir "/opt/redis/data"
#监控的IP 端口号 名称 sentinel通过投票后认为mater宕机的数量,此处为至少2个
sentinel monitor mymaster 172.20.107.252 6379 2
#配置密码
sentinel auth-pass mymaster 123456
#30秒ping不通主节点的信息,主观认为master宕机
sentinel down-after-milliseconds mymaster 30000
#故障转移后重新主从复制,1表示串行,>1并行
sentinel parallel-syncs mymaster 1
#故障转移开始,三分钟内没有完成,则认为转移失败
sentinel failover-timeout mymaster 180000
- sentinel_26380.config
#配置端口
port 26380
#以守护进程模式启动
daemonize yes
#日志文件名
logfile "sentinel_26380.log"
#存放备份文件以及日志等文件的目录 目录记得先创建好
dir "/opt/redis/data"
#监控的IP 端口号 名称 sentinel通过投票后认为mater宕机的数量,此处为至少2个
sentinel monitor mymaster 172.20.107.252 6379 2
#配置密码
sentinel auth-pass mymaster 123456
#30秒ping不通主节点的信息,主观认为master宕机
sentinel down-after-milliseconds mymaster 30000
#故障转移后重新主从复制,1表示串行,>1并行
sentinel parallel-syncs mymaster 1
#故障转移开始,三分钟内没有完成,则认为转移失败
sentinel failover-timeout mymaster 180000
- sentinel_26381.config
#配置端口
port 26381
#以守护进程模式启动
daemonize yes
#日志文件名
logfile "sentinel_26381.log"
#存放备份文件以及日志等文件的目录 目录记得先创建好
dir "/opt/redis/data"
#监控的IP 端口号 名称 sentinel通过投票后认为mater宕机的数量,此处为至少2个
sentinel monitor mymaster 172.20.107.252 6379 2
#配置密码
sentinel auth-pass mymaster 123456
#30秒ping不通主节点的信息,主观认为master宕机
sentinel down-after-milliseconds mymaster 30000
#故障转移后重新主从复制,1表示串行,>1并行
sentinel parallel-syncs mymaster 1
#故障转移开始,三分钟内没有完成,则认为转移失败
sentinel failover-timeout mymaster 180000
- 启动哨兵
- redis-sentinel redis-config/sentinel_26379.conf
- redis-sentinel redis-config/sentinel_26380.conf
- redis-sentinel redis-config/sentinel_26381.conf
- 验证主从自动切换
- 先停掉redis master主节点,查看sentinel日志信息
- 进入6380客户端,查看信息
发现6380已升级为主节点
- 查看6380配置文件,已默认为主节点了
- 查看6381配置文件,主节点已设置为6380
问题点:
挂掉的6379redis配置文件没有被修改,这里我手动修改,降低为slave,指向master6380,然后启动,查看正常!
但是个人觉得这里不应该手动改配置,而是哨兵自动配置好的,但是实际情况不是如此!不知道是不是我哪里配置的有问题,还是挂掉的就需要自己修改配,指向主节点,有研究透彻的可以留言讨论。