Sentinel(哨兵模式)
高可用启动顺序:
1.先搭建主从并启动
2.修改sentinel并启动
主从复制的问题:
1.一旦主节点出现问题:手动提升从节点为主节点
手动修改web的主节点地址 复制命令到新的主节点
2.主节点的写能力有限
3.主节点的存储能力有限
主故障,从节点自动提升为主节点
哨兵模式:
哨兵模式是一种特殊的模式:
这是redis内置的 哨兵是一个单独的进程,独立运行 /etc/redis.conf /etc/redis-sentinel.conf
工作原理,是从通过发送命令(ping),等待redis响应,从而监控多个redis实例
哨兵:redis自带 工作在redis服务器 基于主从 作用:1.监控主从2.投票判断达到设定的票数之后自动提升一个从为新的主,然后通知整个集群,建立新的主从关系
实验步骤:
第一步:搭建1.搭建一主多从master:192.168.0.121
bind 0.0.0.0
protected-mode no
port 6379
第一台从服务器的配置:192.168.0.120
bind 0.0.0.0
proedtected-mode no
port 6379
slaveof 192.168.0.121 6379
第二台从服务器:192168.0.122
bind 0.0.0.0
proedtected-mode no
port 6379
slaveof 192.168.0.121 6379
做一主多从服务
第二步:vim /etc/redis-sentinel.conf修改添加
sentinel monitor mymaster 192.168.0.120 6379 2(代表票数)
protected-mode no
第三步:重启service redis-sentinel start三台服务器都要配置
第四步:tail -f /var/log/redis/sentinel.log 查看日志文件 sentinel搭建成功
测试
1.在第三台服务器上tail -f /var/log/redis/sentinel.log
2.将主服务器的redis停止运行service reddis stop
3.查看第三台服务器是否投票成功
4.在从服务器上查看IP地址
结果是:
正常状态:master:121 slave:120 122
故障状态:master:120 slave:121 122
121恢复后不一定还是master可以是其中的任意一个
故障的切换过程:
1.主服务器宕机
2.日志中,有一台服务器发现主服务器挂了,判断为sdown(主观下线)
63255:X 11 Oct 17:11:49.473 # +sdown slave 192.168.0.121:6379 192.168.0.121 6379 @ mymaster 192.168.022 6379
3.sentinel 推leader,发起投票,如果一旦达到设置的票数,就执行故障切换,客观下线
63255:X 11 Oct 17:21:50.394 # +odown master mymaster 192.168.0.122 6379
63255:X 11 Oct 17:21:50.456 # +new-epoch 10 票数的数量
4.故障切换,通过发布订阅模式,告诉所有的sentinel,把自己监控的从服务器的master IP修改
63255:X 11 Oct 17:21:50.928 # +switch-master mymaster 192.168.0.122 6379 192.168.0.120 6379
5.同步数据:+fix、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、