Redis的架构演进过程

2022-10-04 08:21:38 浏览数 (2)

Redis架构演进

一主二从

这也是常用的架构,,MASTER用于写服务,SLAVE提供读服务 但是存在弊端, 就是主MASTER宕机后, SLAVE无法升级, 导致无法提供写服务

哨兵监控

为了解决主从架构的MASTER宕机问题, 架构引入哨兵监控机制, 一般哨兵也是集群,最少节点为3, 为什么呢

故障转移-主观下线

应为单哨兵, 可能存在主观下线问题, 因为网络的延迟波动, 导致单哨兵主观认为MASTER节点宕机, 导致其被强制下线, 但是其实是应为网络波动的问题, MASTER并没有问题

故障转移-客观下线

为了解决主观下线问题, 所以需要哨兵节点至少为3, 而确认需要配置为2, 只有哨兵集群中2个哨兵同时认为MASTER节点宕机, MASTER才会被下线, 解决了单哨兵的主观下线问题, 从而达到故障转移, 多哨兵, 那么由谁去做故障转移呢, 那么就会设计到哨兵的Leader选举机制

哨兵Leader选举机制

采用投票机制, 3个哨兵中, 谁获得的票数高, 谁就会成为Leader, 进行故障准一的工作

当leader对其中一台SLAVE升级之后, 其他的SLAVE会将MASTER切换为当前新上任的MASTER, 并且新MASTER会给所有的SLAVE进行数据同步,, 并且哨兵集群将继续监控

原MASTER恢复

当原来的MASTER被修复后,重新复活, 被哨兵检测到, 会自动将其降级成SLAVE并加入当前的集群中, 然后新MASTER对其进行数据同步, 复活的MASTER并不会成为MASTER, 而是服从新MASTER的安排, 自身为SLAVE

部署约定

  • 哨兵节点至少要有3个或者3 (奇数)个节点
  • 客观下线的投票数量的计算方式为: 哨兵数量/2 1, 至少要超过半数的哨兵投票
  • 哨兵分布式的部署在不同的计算机节点
  • 一组哨兵只监听一组主从

0 人点赞