Redis哨兵模式

哨兵模式

简介

在主从复制的基础上,增加了哨兵(Sentinel)服务器,其核心功能是实现了自动化的故障恢复,能够后台监控主机是否故障,如果故障了根据投票数自动将库设置为主库。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G65XV2ey-1624431062629)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20210623101028335.png)]

单个哨兵,但是也会存在一个问题,但是存在哨兵模式存在宕机的可能,所以一般情况下都会部署3个以上的哨兵服务器。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Dx1e7gvh-1624431062633)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20210623101807590.png)]

流程

流程:

假设主服务器宕机,从服务器主管下线后不会进行故障转移等操作

  1. 每个哨兵节点维护了3个定时任务:

    1. 通过主节点发送info命令获取最新的主从结构
    2. 通过发布订阅功能获取其他哨兵节点的信息
    3. 通过其他节点发送ping命令进行心跳检测,判断是否下线
  2. 主服务器宕机 , 哨兵1先检测这个结果,系统并不会马上进行投票,仅仅是哨兵1认为主服务器不可用,这种现象称之为主观下线。

  3. dailover故障转移:当后边的哨兵也检测到主服务器不可用时,并且数量达到一致时,那么哨兵之间就会进行投票,投票的结果由一个哨兵发起,故障转移分为3个步骤

    1. 在从节点中选择新的主节点:选择的原则是首先过滤掉不健康的从机,选择优先级最高的从机,如果优先级无法区分,则会选择复制偏移量最大的从机,如果仍无法区分,则原则runID(唯一标识服务器的ID)最小的节点。
    2. 更新从机:通过 slave of one,让选出的从机成为主机,并开通slaveof命令让其他节点成为其从机
    3. 将已经下线的主机,设置为新主机的从机,当它重新上线时,它就会成为新主机的从机。
  4. 客观下线:切换成功后,就会同步发布订阅模式,让哨兵把自己交控的从服务器实现切换主机,这个过程称之为客观下线

这里需要注意的是哨兵只是配置提供者而不是代理主机:两者的区别是如果是配置提供者,客户端在通过哨兵获得主节点信息时,会直接建立到主节点的连接,后序的请求会直接发向主机;如果是代理,客户端的每一次请求都会发向哨兵,哨兵再通过主节点处理请求,再由哨兵传给客户端数据。

安装哨兵

  1. 首先应该现有至少一个主服务器以及两个从服务器的建立

  2. 在redis.conf同级目录下创建sentinel.conf 内容格式 固定写法

    sentinel monitor [master-group-name] [ip] [port] [quorum] 比如 sentinel monitor mySentinel 127.0.0.1 6379 1

  3. 然后在另起一个客户端安装目录下启动哨兵redis-server sentinel.conf --sentinel。

  4. 通过 info replication查看各个服务之间主从服务等关系。

优点

  1. 哨兵集群,基于主从复制,所有主从复制的优点都会有
  2. 主从可以切换,故障可以转移,系统的可用性就会更好
  3. 哨兵模式就是主从模式的升级,手动到自动,更加健壮

缺点

1、 redis不好在线扩容,集群容量一旦达到上限,在线扩容就会很麻烦

2、 实现哨兵模式的配置很麻烦,会有很多选择

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值