主从复制
主从链(拓扑结构、主负责写,从负责读)
画了两张图来帮助理解
?
?
复制模式
问题点
-
同步故障
-
复制数据延迟(不一致) -
读取过期数据(Slave 不能删除数据) -
从节点故障 -
主节点故障
-
配置不一致
-
maxmemory 不一致:丢失数据 -
优化参数不一致:内存不一致.
-
避免全量复制
-
复制风暴
哨兵机制
拓扑图(来自网络)
一主二从三哨兵 每一个哨兵都监控着除了自己以外的所有节点
节点下线
举个例子:一个烧饼监控着主节点,但是他们之间的网络可能不太好,所以发生了超时,所以这个哨兵就认为这个主节点下线了;第二点很容易理解了,可以理解为redis的ping-pong,你没回应,我就认为你下线了。
-
客观下线
-
所有 Sentinel 节点对 Redis 节点失败要达成共识,即超过 quorum(这是个参数,可以理解为超过总数的一半?) 个统一。 -
当节点被一个 Sentinel 节点记为主观下线时,并不意味着该节点肯定故障了,还需要 Sentinel 集群的其他 Sentinel 节点共同判断为主观下线才行。 -
该 Sentinel 节点会询问其它 Sentinel 节点,如果 Sentinel 集群中超过 quorum 数量的 Sentinel 节点认为该 Redis 节点主观下线,则该 Redis 客观下线。
主观下线是一个哨兵节点认为你下线了,客观下线是所有节点都认为你下线了!!!之所以这样做是为了放在网络波动导致节点下线问题
Leader选举(这个leader哨兵的作用只是用来选出新的Redis Master,选出来以后就恢复平齐地位,原来的master节点恢复正常以后成为新的master的slava)
|