redis分布式锁(4)

1、灾备切换Sentinel的使用

简介:互联网服务灾备故障转移,sentinel的配置
sentinel

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

  • 一旦主节点宕机,从节点作为主节点的备份可以随时顶上来。
  • 扩展主节点的读能力,分担主节点读压力。

但是问题来了:

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

1.2、redis主节点挂掉之后应该怎么操作?命令模拟

 slaveof no one 	# 取消主备,变更为主节点
 slaveof 新host 新节点 	# 将其他节点设置为新主节点的备份节点

以下有三个节点6379为主节点,6380,6381为从节点,
模拟6379主节点挂掉,
手动将6380设置为主节点,6381设置为6380的从节点

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

1.3、Sentinel正是实现了这个功能

恢复上面的环境(或者准备如下环境),下面就可以使用sentinel。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.4、开启Sentinel配置 3主3从 3主6从

重新启动8079,8080,8081
…/redis-server redis.conf

sentinel的配置文件在redis的根目录下 sentinel.conf
将sentinel.conf复制到 redis-replication cp sentinel.conf /usr/local/redis-replication/sentinel_1.conf

修改 sentinel_1.conf中如下配置项

sentinel monitor mymaster 127.0.0.1 6379 1 			#哨兵监控的master
sentinel down-after-milliseconds mymaster 10000		#master或者slave多少时间(默认30秒)不能使用标记为down状态。
sentinel failover-timeout mymaster 60000		#若哨兵在配置值内未能完成故障转移操作,则任务本次故障转移失败。
sentinel parallel-syncs mymaster 1
sentinel auth-pass mymaster redispass    #如果redis配置了密码,那这里必须配置认证,否则不能自动切换

启动sentinel
/usr/local/redis4/redis-4.0.6/src/redis-sentinel sentinel_1.conf
在这里插入图片描述
在这里插入图片描述
关闭6379
在这里插入图片描述
等10s后,6380变为主节点
在这里插入图片描述

1.5、命令讲解

  • sentinel monitor mymaster 127.0.0.1 6379 1 名称为mymaster的主节点名,1表示将这个主服务器判断为失效至少需要 1个 Sentinel 同意 (只要同意 Sentinel 的数量不达标,自动故障迁移就不会执行)
  • down-after-milliseconds 选项指定了 Sentinel 认为服务器已经断线所需的毫秒数
  • failover过期时间,当failover开始后,在此时间内仍然没有触发任何failover操作,当前sentinel 将会认为此次failoer失败
  • parallel-syncs 选项指定了在执行故障转移时, 最多可以有多少个从服务器同时对新的主服务器进行同步, 这个数字越小, 完成故障转移所需的时间就越长。
  • 如果从服务器被设置为允许使用过期数据集, 那么你可能不希望所有从服务器都在同一时间向新的主服务器发送同步请求, 因为尽管复制过程的绝⼤部分步骤都不会阻塞从服务器, 但从服务器在载入主服务器发来的 RDB 文件时, 仍然会造成从服务器在一段时间内不能处理命令请求: 如果全部从服务器一起对新的主服务器进行同步, 那么就可能会造成所有从服务器在短时间内全部不可用的情况出现。

1.6、启动所有主从上的sentinel

前提是它们各自的server已成功启动 cd /usr/local/redis/src/redis-sentinel
/etc/redis/sentinel.conf

1.7、info Replication 查看节点信息

1.8、shutdown主节点看服务是否正常

2、互联网高可用灾备以及Sentinel三大任务解析

简介:互联网冷备和热备解析,Sentinel是怎么工作的?Sentinel三大工作任务是什么?

2.1、Sentinel三大工作任务

  • 监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。
  • 提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API向管理员或者其他应用程序发送通知。
  • 自动故障迁移(Automatic failover): 当一个主服务器不能正常工作时, Sentinel 会开始一次自动故障迁移操作, 它会将失效主服务器的其中一个从服务器升级为新的主服务器, 并让失效主服务器的其他从服务器改为复制新的主服务器; 当客户端试图连接失效的主服务时, 集群也会向客户端返回新主服务器的地址, 使得集群可以使用新主服务器代替失效服务器。
    在这里插入图片描述

2.2、互联网冷备和热备讲解,冷备和热备的特点分析

冷备

  • 概念:冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库
  • 优点:
    • 是非常快速的备份方法(只需拷文件)
    • 低度维护,高度安全
  • 缺点:
    • 单独使用时,只能提供到“某一时间点上”的恢复
    • 再实施备份的全过程中,数据库必须要作备份而不能作其他工作。也就是说,在冷备份过程中,数据库必须是关闭状态

热备

  • 概念:热备份是在数据库运行的情况下,采用archivelog mode方式备份数据库的⽅法
  • 优点:
    • 备份的时间短(实时备份)
    • 备份时数据库仍可使用
    • 可达到秒级恢复(master挂了之后,其他节点成为新master秒恢复)
  • 缺点
    • 若热备份不成功,所得结果不可用于时间点的恢复
    • 因难于维护,所以要非常仔细小心
      在这里插入图片描述

3、Redis高可用Sentinel故障转移原理

简介:Sentinel是怎么工作的?

3.1、主观下线:

  • 概念主观下线(Subjectively Down, 简称 SDOWN)指的是单个 Sentinel 实例对服务器做出的下线判断
  • 主管下线特点:
    • 如果一个服务器没有在 master-down-after-milliseconds 选项所指定的时间内, 对向它发送 PING 命令的 Sentinel 返回一个有效回复(valid reply), 那么 Sentinel 就会将这个服务器标记为主观下线
    • 服务器对 PING 命令的有效回复可以是以下三种回复的其中一种:
返回 +PONG 。
返回 -LOADING 错误。
返回 -MASTERDOWN 错误。

3.2、客观下线

  • 客观下线概念:
    • 指的是多个 Sentinel 实例在对同一个服务器做出 SDOWN 判断, 并且通过 SENTINEL is-master-down-by-addr 命令互相交流之后, 得出的服务器下线判断。 (一个Sentinel 可以通过向另一个Sentinel 发送 SENTINEL is-master-down-by-addr 命令来询问对方是否认为给定的服务器已下线。)
  • 客观下线特点:
    • 从主观下线状态切换到客观下线状态并没有使用严格的法定人数算法(strong quorum algorithm), 而是使用了流言协议(网站互相交流的协议): 如果 Sentinel 在给定的时间范围内, 从其他Sentinel 那么接收到了足够数量的主服务器下线报告, 那么 Sentinel 就会将主服务器的状态从主观下线改变为客观下线。 如果之后其他 Sentinel 不再报告主服务器已下线, 那么客观下线状态就会被移除。
  • 客观下线注意点:
    • 客观下线条件只适用于主服务器: 对于任何其他类型的 Redis 实例, Sentinel 在将它们判断为下线前不需要进行协商, 所以从服务器或者其他 Sentinel 永远不会达到客观下线条件。 只要一个 Sentinel 发现某个主服务器进行了客观下线状态, 这个 Sentinel就可能会被其他 Sentinel 推选出, 并对失效的主服务器执行自动故障迁移操作。
      如果主服务上线,那么他的身份是从节点

4、sentinel整合Springboot实例演示

简介:Redis高可用整合springboot实例

4.1、思考?redis高可用sentinel整合springboot的步骤

图解高可用架构代理的概念
在这里插入图片描述

4.2、引入yml配置文件

redis:
 sentinel:
 	master: mymaster
 	nodes: 172.16.244.133:26379,172.16.244.135:26370

4.3、pom文件

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-dataredis</artifactId>
</dependency>

4.4、启动redis主从节点和sentinel

先关闭掉原来的redis主从节点和sentinel,再启动redis主从节点和sentinel

4.5、启动springboot服务

4.6、登上服务器看配置是否有效

6380主,6379从
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值