美文网首页
学习笔记:Redis High Availability

学习笔记:Redis High Availability

作者: 大力papa | 来源:发表于2020-07-02 23:44 被阅读0次

    本文仅供学习交流使用,侵权必删。
    不作商业用途,转载请注明出处。

    Redis的HA依赖于Redis的Replication功能和Redis Sentinel。Replication回顾之前的学习笔记,这里主要讲一下Redis Sentinel。

    Sentinel在HA场景中的作用:

    • 监控(Monitoring):Sentinel服务器会主动监控Master服务器的健康状态。
    • 自动故障转移(Automatic failover):如果Master宕机,Sentinel会自动将一台Slave提升为新的Master以及会修改其他Slave的配置文件让其跟随新的Master,此外还会修改自身的配置文件中监控Master的IP地址。Client尝试连接失效服务器,Sentinel也会返回一个新的Master地址给Client。
    • 提醒(Notification):当被监控的Redis服务器出现问题,Sentinel可以通过api通知运维人员或者其他监控系统。

    使用Sentinel时的建议

    1. 要使一个集群是健壮的、高可用的。至少需要三个Sentinel实例,最好部署奇数台Sentinel服务器。
    2. Sentinel服务器应该以独立方式部署。例如在不同的Region上执行的不同物理服务器或虚拟机。

    Sentinel配置

    //sentinel monitor <master-group-name> <ip> <port> <quorum>
    //<quorum>是sentinel集群中多少票可以确认master失去连接,只要同意 Sentinel 数量不达标,Automatic failover就不会执行
    sentinel monitor mymaster 127.0.0.1 6379 2
    
    //选项指定了 Sentinel 认为服务器已经断线所需的毫秒数
    sentinel down-after-milliseconds mymaster 60000
    
    //failover过期时间。当failover开始后,在此时间内仍然没有触发任何failover操作,当前sentinel将会认为此次failoer失败。  
    sentinel failover-timeout mymaster 180000
    
    //选项指定了在执行故障转移时, 最多可以有多少个从服务器同时对新的主服务器进行同步, 这个数字越小, 完成故障转移所需的时间就越长
    sentinel parallel-syncs mymaster 1
    
    sentinel monitor resque 192.168.1.3 6380 4
    sentinel down-after-milliseconds resque 10000
    sentinel failover-timeout resque 180000
    sentinel parallel-syncs resque 5
    

    启动Sentinel方式

    • 使用redis-sentinel方式:redis-sentinel /path/to/sentinel.conf
    • 使用redis-server方式:redis-server /path/to/sentinel.conf --sentinel

    SDOWN和ODOWN

    Sentinel对于下线有两个概念:

    1. SDOWN:Subjectively Down主观下线,指的是单个sentinel对服务器做出下线判断。如果一个服务器没有在 master-down-after-milliseconds 选项的时间内, 对向它发送 PING 命令的 Sentinel实例回复一个有效回复(valid reply), 那么 Sentinel 就会将这个服务器标记为SDOWN
    2. ODOWN:Objectively Down客观下线,指的是多实例对某个服务器做出SDOWN判断,并通过 SENTINEL is-master-down-by-addr 命令互相交流之后,则判断该服务器ODOWN。另外,failover只有ODOWN情况下才能触发

    参考文献

    https://redis.io/topics/sentinel

    相关文章

      网友评论

          本文标题:学习笔记:Redis High Availability

          本文链接:https://www.haomeiwen.com/subject/buidqktx.html