首页 > 数据库 >Redis的架构演进过程

Redis的架构演进过程

时间:2022-10-03 04:44:20浏览次数:55  
标签:SLAVE 演进 Redis 哨兵 MASTER 架构 下线 节点

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, 至少要超过半数的哨兵投票
  • 哨兵分布式的部署在不同的计算机节点
  • 一组哨兵只监听一组主从

标签:SLAVE,演进,Redis,哨兵,MASTER,架构,下线,节点
From: https://www.cnblogs.com/flower-dance/p/16749915.html

相关文章

  • SpringBoot整合Redis[哨兵版]
    SpringBoot整合Redis[哨兵版]修改配置文件server:port:8080spring:application:name:redisredis:#host:192.168.247.141#port:6379......
  • Redis5.0.5 安装与配置
    哎,本来想的是10.1回家呢,结果突然本地多了一例的疫情,所以只能把票都退了,已经将近一年都没有回家,思念如泉~,只能静下心来继续学习, 路漫漫其修远兮吾将上下而求......
  • Redis的线程模型
      我觉得这个图就非常清晰,如果是懂BIO/Netty的人看起来应该很容易,是的没错Redis的线程模型就是基于多路复用器做的,采用非阻塞的IO模型,当前是6.x之前的版本,6.......
  • SpringBoot整合Redis[单机版]
    SpringBoot整合Redis[单机版]添加依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>......
  • 饿了么推荐算法演进
    导读:本次分享的主要内容包括以下三个方面:首先是介绍推荐业务背景,包括推荐产品形态及算法优化目标;然后是算法的演进路线;最后重点介绍在线学习是如何在饿了么推荐领域实践的......
  • rocketmq 架构图
     因为相信,所以看见.......
  • redis-shake
    https://github.com/alibaba/RedisShake/wiki/%E8%BF%90%E8%A1%8C%E7%9B%91%E6%8E%A7redis-shakeisatoolforRedisdatamigrationanddatafiltering.Feature......
  • Redis基本操作
    Redis数据类型:redis自身是一个map,其中所有数据都是采用key:vlue的形式存储数据类型指的是存储的数据的类型,也就是value部分的类型,key部分永远都是字符串redis所有的操作都......
  • redis远程连接错误SocketTimeoutException: connect timed out
    redis远程连接错误SocketTimeoutException:connecttimedout解决方案:编辑redis.conf文件(建议将其先备份编辑备份文件启动redis服务时直接引入修改好的备份文件)将......
  • redis基本操作
    什么是redisredis是一个高性能的key-value存储的NoSQL数据存储系统。为什么是nosql——大数据下需要更好的性能补充:1、一共有15个数据库,select1;默认是0号库2、单线程......