灾备切换Sentinel的使用

1,Redis主从复制可将主节点数据同步给从节点,从节点此时有两个作用:

1.1 一旦主节点宕机,从节点作为主节点的备份可以随时顶上来。

1.2 扩展主节点的读写能力,分担主节点读压力。

但是问题来了:

一旦主节点宕机,从节点晋升为主节点,同时需要修改应用方的主节点地址,还需要命令所有从节点去复制新的主节点,整个过程需要人工干预。

2,redis主节点挂掉之后需要操作下面命令

slave no one #取消主备,更改为主节点

slaveof 新host  新节点  #将其它节点设置为新主节点的备份节点

3,Sentinel正是实现了这个功能

4,开启Sentinel配置

sentinel monitor mymaster 127.0.0.1 6379 1

sentinel down-after-milliseconds mymaster 10000

sentinel failover-timeout mymaster 60000

sentinel parallel-syncs mymaster 1

5,启动Sentinel

/usr/local/soft/redis5/bin/redis-sentinel   sentinel.conf

6,查看状态

info replication

7,Sentinel三大工作任务

7.1 监控: Sentinel会不断地检测你的主服务器和从服务器是否运作正常。

7.2 提醒: 当被监控的某个redis出现问题时,Sentinel可以通过API向管理员或其它应用程序发送通知。

 7.3 自动故障转移:当一个主服务器不能正常工作时,Sentinel会开始一次自动故障转移操作,它会将失效的主服务器的其中一台从服务器升级为新的主服务器,并让失效主服务器的其它从服务器改为复制新的主服务器,当客户端试图连接失效的主服务器时,集群也会向客户端返回新主服务器的地址,使得集群可以使用新主服务器代替失效服务器。

8 Sentinel是如何工作的?

8.1 主观下线

指的是单个Sentinel实例对服务器做出的下线判断

如果一个服务器没有在master-down-after-milliseconds选项所指定的时间内,对向他发送PING命令的Sentinel返回一个有效回复,那么Sentinel就会将这个服务器标记为主管下线

服务器对PING命令的有效回复为以下其中一种:

返回 +PONG

返回-LOADING错误

返回-MASTERDOWN错误

8.2 客观下线

指的多个Sentinel实例在对同一个服务器做出SDOWN判断,并通过SENTINEL is-master-down-by-addr 命令互相交流之后,得出的服务器下线判断。

从主观下线切换到客观下线并没有使用严格的法定人数算法,而是使用了流言协议:如果Sentinel在给定的时间范围内,从其它Sentinel那里接受到了足够数量的主服务器下线报告,那么Sentinel就会将主服务器的状态从主观下线改变为客观下线,如果之后其它Sentinel不再报告主服务器已下线,那么客观下线状态就会被移除。

客观下线条件只适用于主服务器:对于其它任何类型的redis实例,Sentinel在判断他们为下线前不需要进行协商,所以从服务器或者其它Sentinel永远不会达到客观下线条件,只要一个Sentinel发现某个主服务器进入了客观下线状态,这个Sentinel就可能会被其它Sentinel推选出,并对失效的主服务器执行自动故障迁移操作。

9 集成springboot

<dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-data-redis</artifactId>

</dependency>

引入yml文件:

redis:

      sentinel:

           master: mymaster

            nodes: 127.0.0.1:26379

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值