学习笔记:Redis High Availability

2020-07-02  本文已影响0人  大力papa

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

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

Sentinel在HA场景中的作用:

使用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方式


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

上一篇下一篇

猜你喜欢

热点阅读