redis配置了哨兵redis模式,kill掉master的进程,没有进行故障切换,这是哪部分配置错了?

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

    为了达到redis的高可用,有两种部署方式:主从复制+哨兵redis机制;集群模式哨兵redis机制是redis2.8開始支持。集群模式是redis3.0开始支持

    主从复制可以把主节点的数据复制给从节点。从节点可以备份主节点的数据起到主节点down调,顶上来接替主节点工作的作用也可以起到分担主节点读压力的作用。

    没有哨兵redis机制的时候主从复制结构部署存在的问题是什么?也可以说redis主节點发生故障如何解决

    3、通知应用方redis主节点变成了新主节点。 修改客户端调用的地址并重启客户端

    为了实现redis故障转移的自动化。自动发現自动转移。不需要人工参与

    结合上图,主从复制节点是数据节点哨兵redis机制部署的节点是监控节点,它们都是redis实例但是哨兵redis节点鈈存储数据,它们监控主从数据节点的状态若哨兵redis判定主节点down掉后,就会自动执行上边提到的手工操作的4步

    哨兵redis节点自动化完成故障轉移的过程:

    哨兵redis机制是建立了多个哨兵redis节点,它们共同监控数据节点的运行状况同时哨兵redis节点之间也互相通信。交换对主从节点的监控状况下面提到两个概念:

    主观下线和客观下线:一个哨兵redis节点判定主节点down掉是主观下线。只有半数个哨兵redis节点都主观判定主节点down掉此时多个哨兵redis节点交换主观判定结果,才会判定主节点客观下线

    基本上哪个哨兵redis节点最先判断出这个主节点客观下线,就会在各个哨兵redis節点中发起投票机制每个哨兵redis都投自己为领导者。最终被投为领导者的哨兵redis节点完成主从自动化切换的过程当判断为主观下线时,不會进行主从切换过程

    能让工具(程序)去做的事情,就不要自己去做

    monitor处处有,自动发现自动报警,自动解决流程化的东西就可以栲虑让它自动化。

}

    在上一篇中已经实现了redis的主從架构但是如果redis的主从架构中出现宕机怎么办?如果从redis宕机相对简单一些那么如果住redis的宕机就会比较麻烦,需要我们手动进行处理這样很可能会造成数据的丢失,这时候我们就需要用到Redis提供的哨兵redis(sentinel)功能哨兵redis会在master发送故障的时候,能自动将slave切换成master下面就对哨兵redis莋一个介绍。

Redis提供了sentinel(哨兵redis)机制通过sentinel模式启动redis后,自动监控master/slave的运行状态基本原理是:心跳机制+投票裁決
每个sentinel会向其它sentinal、master、slave定时发送消息,以确认对方是否“活”着如果发现对方在指定时间(可配置)内未回应,则暂时认为对方已挂(所謂的“主观认为宕机” Subjective Down简称SDOWN)。
若”哨兵redis群”中的多数sentinel都报告某一master没响应,系统才认为该master”彻底死亡”(即:客观上的真正down机Objective Down,简称ODOWN)通过一定的vote算法,从剩下的slave节点中选一台提升为master,然后自动修改相关配置

Sentinel进程将实例标记为主观下线并不一定会引起实例的自动故障迁移:只有在足够数量的Sentinel都将一个实例标记为主观下线之后,实例才会被标记为客观下线这时自动故障迁移才会执行 5. sentinel parallel-syncs mymaster 1:指定了在执行故障转移时,最多可以有多少个从Redis实例在同步新的主实例在从Redis实例较多的情况下这个数字越小,同步的时间越长完成故障转移所需的時间就越长


 

下面就是模拟主节点宕机,哨兵redis进行工作的整个过程

 

}

    • 当用redis作master-slave的高可用时,如果master本身宕机,redis本身或者客户都没有实现主从切换的功能
    • 不时的监控redis是否良好运行,如果节点不可达就会对节点进行下线标识
    • 如果被标识的是主节点,Sentinel就會和其他的Sentinel节点'协商',如果其他节点也人为主节点不可达,就会选举一个Sentinel节点来完成自动故障转义

redis主从复制背景

  • redis主从复制可将主節点数据同步给从节点,从节点此时有俩个作用:

    • 一旦主节点宕机,从节点作为主节点的备份可以随机顶上来.
    • 扩展主节点的读能力,分担主节点读壓力
    • 一旦主节点宕机,从节点上位,那么需要人为修改所有应用方的主节点地址(改为新的master地址),还需要命令所有从节点复制新的主节点

    所以要实現这些功能,redis-sen就可以解决

    • 哨兵redis进行检测,主从架构是否正常,如果主库挂掉,哨兵redis会自动修复redis.conf,进行添加/删除slaveof 指令

  • 这里是以三個redis为实例,一主俩从
  1. 准备三个redis实例,一主俩从

  2. 注意问题:这里如果启动客户端显示

  3. 与上述主节点验证方法一样
  4. 检测主从的状态是否正常

    # 输出内容洳下为正常

    ? 如果发现实验不成功需删掉所有的配置文件,从新来过

    准备三个哨兵redis,开始监控主从架构

    1. 准備三个配置文件哨兵redis文件

    2. 注意!!如果发现实验不成功,需删掉所有的哨兵redis配置文件从新来过

      注意!!如果发现实验不成功,需删掉所有的哨兵redis配置文件从新来过

    3. 模拟哨兵redis自动进行主从切换

      # 查看6380和6381的身份信息,看是否进行主从切换 # 手动启动6379挂掉的数据库,看是否会被哨兵redis,添加进信息主从集群
}

我要回帖

更多关于 哨兵redis 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信