精华内容
下载资源
问答
  • Redis 哨兵模式原理

    2021-03-21 09:20:58
    Redis 哨兵模式原理

    主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式。

    一、哨兵模式概述

    哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令(ping命令),等待Redis服务器响应,如果在指定时间内,主机Redis无响应,从机则判断主机宕机,选举从机上位,从而监控运行的多个Redis实例。
    在这里插入图片描述

    二、哨兵的作用

    在这里插入图片描述

    • 通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器。
      当哨兵监测到master宕机,会自动将slave切换成master,然后通过发布订阅模式通知其他的从服务器,修改配置文件,让它们切换主机。然而一个哨兵进程对Redis服务器进行监控,可能会出现问题,为此,我们可以使用多个哨兵进行监控。各个哨兵之间还会进行监控,这样就形成了多哨兵模式。用文字描述一下故障切换(failover)的过程。假设主服务器宕机,哨兵1先检测到这个结果,系统并不会马上进行failover过程,仅仅是哨兵1主观的认为主服务器不可用,这个现象成为主观下线。当后面的哨兵也检测到主服务器不可用,并且数量达到一定值时,那么哨兵之间就会进行一次投票,投票的结果由一个哨兵发起,进行failover操作。切换成功后,就会通过发布订阅模式,让各个哨兵把自己监控的从服务器实现切换主机,这个过程称为客观下线。这样对于客户端而言,一切都是透明的。

    三、哨兵判断细节

    主机下线
    • 主观下线
      主观下线 适用于所有 主节点从节点。如果在 down-after-milliseconds 毫秒内,Sentinel 没有收到 目标节点 的有效回复,则会判定 该节点为主观下线。只有半数个哨兵节点都主观判定主节点down掉,此时多个哨兵节点交换主观判定结果,才会判定主节点客观下线。
    • 客观下线
      客观下线 只适用于 主节点。如果 主节点 出现故障,Sentinel 节点会通过 sentinel is-master-down-by-addr 命令,向其它 Sentinel 节点询问对该节点的 状态判断。如果超过 个数的节点判定 主节点 不可达,则该 Sentinel 节点会判断 主节点 为 客观下线。基本上哪个哨兵节点最先判断出这个主节点客观下线,就会在各个哨兵节点中发起投票机制,每个哨兵都投自己为领导者。最终被投为领导者的哨兵节点完成主从自动化切换的过程。当判断为主观下线时,不会进行主从切换过程。

    选举

    • 每个发现主服务器进入客观下线的sentinel都可以要求其他sentinel选自己为领头sentinel,选举是先到先得。同时每个sentinel每次选举都会自增配置纪元,每个纪元中只会选择一个领头sentinel。如果所有超过一半的sentinel选举某sentinel领头sentinel。之后该sentinel进行故障转移操作。

    哨兵模式优缺点

    优点
    1. 监控主数据库和从数据库是否正常运行。
    2. 主数据库出现故障时,可以自动将从数据库转换为主数据库,实现自动切换。
    3. 如果redis服务出现问题,会发送通知。
    缺点
    1. 主数据库出现故障时,选举切换的时候容易出现瞬间断线现象。

    Redis哨兵模式配置移至下篇文章:
    Redis 哨兵模式配置


    转载自:
    redis哨兵模式
    Redis哨兵(Sentinel)模式

    展开全文
  • Redis哨兵模式原理

    2020-03-25 19:00:29
    Redis哨兵模式原理

    哨兵模式

    哨兵(sentinel) 是一个分布式系统,可以在一个架构中运行多个哨兵(sentinel) 进程,这些进程使用流言协议(gossipprotocols)来接收关于Master是否下线的信息,并使用投票协议(agreement protocols)来决定是否执行自动故障迁移,以及选择哪个Slave作为新的Master.
      每个哨兵(sentinel) 会向其它哨兵(sentinel)、master、slave定时发送消息,以确认对方是否”活”着,如果发现对方在指定时间(可配置)内未回应,则暂时认为对方已挂(所谓的”主观认为宕机” Subjective Down,简称sdown).
      若“哨兵群”中的多数sentinel,都报告某一master没响应,系统才认为该master"彻底死亡"(即:客观上的真正down机,Objective Down,简称odown),通过一定的vote算法,从剩下的slave节点中,选一台提升为master,然后自动修改相关配置.
      虽然哨兵(sentinel) 释出为一个单独的可执行文件 redis-sentinel ,但实际上它只是一个运行在特殊模式下的 Redis 服务器,你可以在启动一个普通 Redis 服务器时通过给定 --sentinel 选项来启动哨(sentinel).哨兵(sentinel) 的一些设计思路和zookeeper非常类似

    实现原理

    三个定时监控任务

    1. 每隔10秒,每个Sentinel节点会向主节点和从节点发送info命令获取Redis数据节点的信息。

    在这里插入图片描述

    作用:

    • 通过向主节点执行info命令,获取从节点的信息,这也是为什么Sentinel节点不需要显式配置监控从节点。
    • 当有新的从节点加入时都可以立刻感知出来。
    • 节点不可达或者故障转移后,可以通过info命令实时更新节点拓扑信息。

    分析
      Sentinel以每10秒一次的频率向master发送info命令,通过info的回复来分析master信息,master的回复主要包含了两部分信息,一部分是master自身的信息,一部分是master所有的slave(从)的信息,所以sentinel可以自动发现master的从服务。sentinel从master哪儿获取到的master自身信息以及master所有的从信息,将会更新到sentinel的sentinelState中及masters(sentinelRedisInstance结构)中的slaves字典中
      在这里插入图片描述

    2.每隔2秒,每个Sentinel节点会向Redis数据节点的__sentinel__:hello频道上发送该Sentinel节点对于主节点的判断以及当前Sentinel节点的信息,同时每个Sentinel节点也会订阅该频道,来了解其他
    Sentinel节点以及它们对主节点的判断。

    在这里插入图片描述
    消息格式:
    <Sentinel节点IP> <Sentinel节点端口> <Sentinel节点runId> <Sentinel节点配置纪元>
    <主节点名字> <主节点Ip> <主节点端口> <主节点配置纪元>
    各个参数的解析如下

        s_ip:sentinel的ip
    
        s_port:sentinel的端口
    
        s_runid:sentinel云心id
    
        s_epoch:sentinel当前的配置纪元
    
        m_name:主服务器名字
    
        m_ip:主服务器ip
    
        m_port:主服务器端口
    
        m_epoch:主服务器纪元
    

    作用:

    • 发现新的Sentinel节点:通过订阅主节点的__sentinel__:hello了解其他的Sentinel节点信息,如果是新加入的Sentinel节点,将该Sentinel节点信息保存起来(如下图:sentinelRedisInstance),并与该Sentinel节点创建连接。
    • Sentinel节点之间交换主节点的状态,作为后面客观下线以及领导者选举的依据。
      在这里插入图片描述

    3. 每隔1秒,每个Sentinel节点会向主节点、从节点、其余Sentinel节点发送一条ping命令做一次心跳检测,来确认这些节点当前是否可达
    在这里插入图片描述

    主观下线和客观下线

    主观下线:
      所谓主观下线,就是单个sentinel认为某个服务下线(有可能是接收不到订阅,之间的网络不通等等原因)。
      sentinel会以每秒一次的频率向所有与其建立了命令连接的实例(master,从服务,其他sentinel)发ping命令,通过判断ping回复是有效回复,还是无效回复来判断实例时候在线(对该sentinel来说是“主观在线”)
       sentinel配置文件中的down-after-milliseconds设置了判断主观下线的时间长度,如果实例在down-after-milliseconds毫秒内,返回的都是无效回复,那么sentinel会认为该实例已(主观)下线,修改其flags状态为SRI_S_DOWN。在实际的工作当中,多个sentinel配置的down-after-milliseconds 超时时间推荐一致。
      
    客观下线:
      客观下线 只针对 主节点,从节点和哨兵节点不需要这一步
      当Sentinel主观下线的节点是主节点时,该Sentinel节点会通过sentinel ismaster-down-by-addr命令向其他Sentinel节点询问对主节点的判断,当超过配置中的< quorum >个数,Sentinel节点认为主节点确实有问题,这时该Sentinel节点会做出客观下线的决定,并后续对其做故障转移操作。
      如果每个Sentinel 配置的down-after-milliseconds时间不一致,会很难超过< quorum >配置的个数
      sentinel is-master-down-by-addr < ip > < por t> < current_epoch > < runid >
    例如:sentinel is-master-down-by-addr 127.0.0.1 6379 0 *

    • ip:主节点IP。
    • port:主节点端口。
    • current_epoch:当前配置纪元。
    • runid:此参数有两种类型,当runid等于“*”时,作用是Sentinel节点直接交换对主节点下线的判定。在领导者Sentinel节点选举时,runid等于当前Sentinel节点的runid,作用是当前Sentinel节点希望目标Sentinel节点同意自己成为领导者的请求。

    一个sentinel接收另一个sentinel发来的is-master-down-by-addr后,提取参数,根据ip和端口,检测该服务时候在该sentinel主观下线,并且回复is-master-down-by-addr

    • down_state:目标Sentinel节点对于主节点的下线判断,1是下线,0是在线。
    • leader_runid:当leader_runid等于“*”时,代表返回结果是用来做主节点是否不可达,当leader_runid等于具体的runid,代表目标节点同意runid成为领导者。
    • leader_epoch:领导者纪元。

    领导者Sentinel节点选举

    Redis使用了Raft算法实现领导者选举,大体思路:

    1. 每个在线的Sentinel节点都有资格成为领导者,每个Sentinel节点发现当它确认主节点客观下线检查时候,会向其他Sentinel节点发送sentinel is-master-down-by-addr命令,要求将自己设置为领导者。
    2. 每个节点在每个选举轮次中只有一次投票权,收到命令的Sentinel节点,如果没有同意过其他Sentinel节点的sentinelis-master-down-by-addr命令,将同意该请求,否则拒绝。
    3. 如果该Sentinel节点发现自己的票数已经大于等于max(quorum,num(sentinels)/2+1),那么它将成为领导者。其他的投票就会终止,即使后续还有其他的哨兵节点到达配置,也没有作用
    4. 如果此过程没有选举出领导者, 暂定一段时间,再进行下一轮选举,current_epoch加1。

    图例:

    s1(哨兵节点)节点首先完成客观下线的检查,然后向s2和s3发送成为领导者的请求:
    在这里插入图片描述
    s2节点完成客观下线的检查,然后向s1和s3发送成为领导者的请求:
    在这里插入图片描述
    s3节点完成客观下线的检查,然后向s1和s2发送成为领导者的请求:
    在这里插入图片描述

    故障转移

    故障转移分为四个主要步骤

    a、 在从节点列表中选出一个作为新的主节点

    [1]  过滤:“不健康”(主观下线、断线)、5秒内没有回复过Sentinel节点ping响应、与主节点失联超过down-after-milliseconds*10秒。(断线时间越长主从数据不一致问题越严重)

    [2]  选择slave-priority(从节点优先级)最高的从节点列表,如果存在则返回,不存在则继续。

    [3]  如果优先级一样,选择复制偏移量最大的从节点(复制的最完整,尽可能的减少数据丢失),如果存在则返回,不存在则继续。

    [4]  如果偏移量一样,选择runid最小的从节点。

    挑选从节点的重要原则:在从从节点列表中挑选与主节点数据最一致的节点。
    在这里插入图片描述
    b、 Sentinel领导者节点会对第一步选出来的从节点执行slaveof no one命令让其成为主节点。

    c、 Sentinel领导者节点会向剩余的从节点发送命令,让它们成为新主节点的从节点,复制规则和parallel-syncs参数有关。slaveof ip port

    d、 Sentinel节点集合会将原来的主节点更新为从节点,并保持着对其关注,当其恢复后命令它去复制新的主节点。

    Sentinel命令

    1、 sentinel masters
    展示所有被监控的主节点状态以及相关的统计信息
    
    2、 sentinel master<master name>
           展示指定<master name>的主节点状态以及相关的统计信息
    
    3、 sentinel slaves<master name>
    展示指定<master name>的从节点状态以及相关的统计信息
    
    4、 sentinel sentinels<master name>
    展示指定<master name>的Sentinel节点集合(不包含当前Sentinel节点)。
    
    5、 sentinel get-master-addr-by-name<master name>
    返回指定<master name>主节点的IP地址和端口
    
    6、 sentinel failover<master name>
    对指定<master name>主节点进行强制故障转移
    
    7、 sentinel ckquorum<master name>
    检测当前可达的Sentinel节点总数是否达到<quorum>的个数
    
    8、 sentinel remove<master name>
    取消当前Sentinel节点对于指定<master name>主节点的监控。
    
    9、 sentinel monitor<master name><ip><port><quorum>
    通过命令的形式来完成Sentinel节点对主节点的监控。
    
    10、 sentinel set<master name>
    动态修改Sentinel节点配置选项,这个命令已经在9.2.4小节进行了说明
    
    11、 sentinel is-master-down-by-addr
    Sentinel节点之间用来交换对主节点是否下线的判断,根据参数的不同,还可以作为Sentinel领导者选举的通信方式
    
    展开全文
  • redis哨兵模式原理及实现

    千次阅读 2020-01-13 00:11:28
    提醒(Notification): 当被监控的某个 Redis出现问题时, 哨兵(sentinel) 可以通过 API 向管理员或者其他应用程序发送通知。 自动故障迁移(Automatic failover): 当一个Master不能正常工作时,哨兵(sentin...

    Springboot整合redis哨兵模式和相关配置文件

    1.什么是哨兵机制?

    监控(Monitoring): 哨兵(sentinel) 会不断地检查你的Master和Slave是否运作正常。
    提醒(Notification): 当被监控的某个 Redis出现问题时, 哨兵(sentinel) 可以通过 API 向管理员或者其他应用程序发送通知。
    自动故障迁移(Automatic failover): 当一个Master不能正常工作时,哨兵(sentinel) 会开始一次自动故障迁移操作,它会将与失效Master连接的其中一个Slave升级为新的Master, 并让与失效Master连接的其他Slave改为复制新的Master; 当客户端试图连接失效的Master时,集群也会向客户端返回新Master的地址,使得集群可以使用Master代替失效Master。
        1.1 哨兵(sentinel) 是一个分布式系统,你可以在一个架构中运行多个哨兵(sentinel) 进程,这些进程使用流言协议(gossipprotocols)来接收关于Master是否下线的信息,并使用投票协议(agreement protocols)来决定是否执行自动故障迁移,以及选择哪个Slave作为新的Master。
        1.2 每个哨兵(sentinel) 会向其它哨兵(sentinel)、master、slave定时发送消息,以确认对方是否”活”着,如果发现对方在指定时间(可配置)内未回应,则暂时认为对方已挂(所谓的”主观认为宕机” Subjective Down,简称sdown).若“哨兵群”中的多数sentinel,都报告某一master没响应,系统才认为该master"彻底死亡"(即:客观上的真正down机,Objective Down,简称odown),通过一定的vote算法,从剩下的slave节点中,选一台提升为master,然后自动修改相关配置。
        1.3 虽然哨兵(sentinel) 释出为一个单独的可执行文件 redis-sentinel ,但实际上它只是一个运行在特殊模式下的 Redis 服务器,你可以在启动一个普通 Redis 服务器时通过给定 --sentinel 选项来启动哨兵(sentinel)。
    哨兵原理图及说明
    在这里插入图片描述
    (1)监控功能的体现,哨兵之间相互监控(哨兵1与哨兵2),每一个哨兵还监控主redis和从redis
    (2)提醒的功能,比如当主redis挂掉时,我们可以通过哨兵节点的配置,比如调用脚本去发送通知。
    (3)自动故障迁移,这一点只是主redis,当主redis挂掉以后,哨兵(sentinel)节点中,通过确认主redis挂掉以后,哨兵节点通过选举,选举出主leader哨兵,决定选举那个从redis成为主节点。

    2实现哨兵模式

    123哨兵
    主: 192.168.223.129 3680: 192.168.223.130 3681
    	192.168.223.131 3682
    哨兵: 192.168.223.120 26379
          192.168.223.121 26379
          192.168.223.122 26379
    哨兵最少是N,其中N>=3,主要是奇数,保证投票的时候N/2+1,多数大于少数,可以进行故障转移
    

    完整配置请见最后文档

    (1)主节点配置如下:创建一个redis6380.conf文件

    ################################## NETWORK #####################################
    # 开启远程连接,需要注释绑定
    bind 0.0.0.0
    # 开启远程连接,需要把保护模式设为no
    protected-mode no
    ################################# REPLICATION #################################
    masterauth "123456"
    

    在NETWORK里面配置bind,默认是127.0.0.1意思是只限本地连接,(0.0.0.0)任何ip都可以,建议配置成哨兵的ip和几个从节点的ip,从节点配置的时候注意要修改成主节点ip和其他从节点ip和哨兵节点ip(防止主redis挂掉以后,重启之后变成从节点,而这个时候其他从节点的之一变为主redis,从而会导致失败,所以要这样配置)
    保护模式设为no
    在REPLICATION配置主节点连接的密码masterauth <主节点密码>,主要是因为这个主节点有可能挂掉,重启之后变为从redis,需要连接的主节点ip和端口,会自动生成,而连接的密码就需要配置

    命令启动启动方式及相关信息查看

    ./redis-server redis6380.conf
    ./redis-cli -p 6380 -a 123456 info
    

    可以看到角色信息
    在这里插入图片描述

    (2)从节点配置如下:创建redis6381.conf,redis6382.conf文件
    在这里插入图片描述
    在REPLICATION中配置主节点信息

    命令启动启动方式及相关信息查看

    ./redis-server redis6381.conf
    ./redis-cli -p 6381 -a 123456 info
    

    其中一个节点信息如下,角色和连接的主节点
    在这里插入图片描述

    (3)哨兵节点配置如下:创建sentinel.conf文件

    #Sentinel使用端口
    port 26379
     
    #打开非保护模式
    protected-mode no
     
    #守护线程启动(即后台启动)
    daemonize yes
     
    #守护进程会使用到的一个文件
    pidfile "/var/run/redis-sentinel.pid"
     
    #指定日志文件名,默认为"",空字符串也可用于强制Sentinel登录标准输出,指定后我们可以通过tail -f xxx.log查看日志
    logfile "/usr/local/redis/bin/redis-sentinel.log"
     
    #每个长时间运行的进程都应该有一个明确定义的工作目录。对于Redis Sentinel来说,启动时dir到/tmp是最简单的事情为进程不干扰管理任务,如卸载文件系统。(默认就是"/tmp",copy过来即可)
    dir "/tmp"
     
    #重要的来了
    #sentinel monitor <master-name> <ip> <redis-port> <quorum>
    #告诉sentinel去监听地址为ip:port的一个master,这里的master-name可以自定义,quorum是一个数字,指明当
    #有多少个sentinel认为一个master失效时,master才算真正失效.需要注意的是master-ip 要写真实
    #的ip地址而不要用回环地址(127.0.0.1)。
    sentinel monitor mymaster 192.168.223.129 6380 2
    
     sentinel auth-pass mymaster 123456
    #sentinel down-after-milliseconds <master-name> <milliseconds> 
    #这个配置项指定需要多少时间无响应,一个master才会被这个sentinel主观地认为是不可用的.单位是毫秒,默认为30秒
    sentinel down-after-milliseconds mymaster 10000
    
     
    #sentinel parallel-syncs <master-name> <numslaves> 
    #这个配置项指定了在发生failover主备切换时最多可以有多少个slave同时对新的master进行同步,这个数字越小,完成failover所需的时间就越长,但是如果这个数字越大,就意味着越 多的slave因为replication而不可用.可以通过将这个值设为1(默认就是1)来保证每次只有一个slave处于不能处理命令请求的状态
    sentinel parallel-syncs mymaster 1
    
     
    #sentinel failover-timeout <master-name> <milliseconds>
    # failover过期时间,当failover开始后,在此时间内仍然没有触发任何failover操作,当前sentinel 将会认为此次failover失败,默认为3分钟,单位为毫秒
    sentinel failover-timeout mymaster 180000
    

    命令启动启动方式及相关信息查看

    ./redis-sentinel sentinel.conf
    ./redis-cli  -p 26379 -a 123456 info
    

    哨兵节点信息如下,哨兵的数量和监控主从redis信息
    在这里插入图片描述
    主从节点都启动之后,在主节点查看信息
    在这里插入图片描述

    3模拟主节点故障,验证故障自动转移

    (1)在主节点执行命令

    ./redis-cli -p 6380 -a 123456 shutdown
    

    从节点130变成了主redis,实现了自动转移功能,通过哨兵模式,我们可以发现,我们配置连接主节点的信息被删掉了
    在这里插入图片描述
    在这里插入图片描述
    (2)假如129(原来的主redis节点)从故障中恢复了,打开redis6381.conf最后一行,发现哨兵模式下自动修改成主节点信息
    在这里插入图片描述
    故障转移日志
    在这里插入图片描述

    展开全文
  • Redis哨兵模式原理 Redis哨兵工作原理可以概括为3个阶段监控阶段,通知阶段,故障转移阶段。全部是文字,比较枯燥。 监控阶段 一个Sentinel的监控行为 Sentinel1 向master发送info master返回info信息给Sentinel 1 ...

    Redis哨兵模式原理

    Redis哨兵工作原理可以概括为3个阶段监控阶段,通知阶段,故障转移阶段。全部是文字,比较枯燥。

    监控阶段

    一个Sentinel的监控行为

    Sentinel1 向master发送info
    master返回info信息给Sentinel 1
    Sentinel1 与master建立cmd连接
    Sentinel1 向所有slave发送info
    Sentinel1 记录SentinelState(包括master,slave,sentinels )
    master记录SentinelRedisInstance(包括master,slave,sentinels )

    Sentinel集群行为

    所有Sentinel互相ping,比如Sentinel2 与 Sentinel1 互相ping
    所有Sentinel 互相publish 和subscribe 同步最新的Redis节点信息

    监控阶段总结:

    Sentinel 会向master,slave以及其他Sentinel 获取状态;
    Sentinel 之间会组建“频道”,订阅消息,发布消息,收集消息,同步消息

    通知阶段

    信息的长期维护阶段

    一个Sentinel行为

    某个时间点Sentinel1向所有redis节点发送hello消息 publish sentinel hello,检测各个节点的状态

    Sentinel集群行为

    Sentinel 集群之间会把其中一个Sentinel获取的消息互相同步

    通知阶段总结

    Sentinel 集群之间信息的长期维护阶段

    故障转移阶段

    故障发现

    一个Sentinel行为

    某个时间点Sentinel1向master节点发送hello消息 ,master没有回应; Sentinel1重复向master发送hello多次后,master还是没反应; SentinelRedisInstance记录master为s_down;(主观下线)
    Sentinel1向其他Sentinel同步消息

    Sentinel集群行为

    Sentinel1向集群所有Sentinel进行master挂了的消息同步;
    其他Sentinel收到消息后,主动向master重复发送hello消息,确认master挂了,相当于重复上边标题一个Sentinel行为;
    超过半数的Sentinel认为master挂了的话;SentinelRedisInstance中记录master为s_down会变成o_down;(客观下线)

    选举Sentinel代表

    一个Sentinel行为

    一个Sentinel 发送自己竞选次数,runid

    Sentinel集群行为

    Sentinel集群通过多次竞选选出Sentinel代表;

    Sentinel代表从slave列表选择一个作为master

    选择标准:
    在线的slave;响应较快的slave;与原master断开时间较长的slave;按照优先原则(优先级,偏移量,runid等)

    被选择的slave变为新的master

    Sentinel向新的master发送指令slaveof no one,你不再是一个slave了;
    Sentinel向其他slave发送slaveof 新的master ip:port;
    原master恢复后作为slave继续工作

    展开全文
  • 文章目录系列文章目录前言一、Sentinel模式概述二、配置哨兵模式1.启动哨兵总结 前言 在Redis中主从复制解决高可用的方案是:当主节点服务器宕机后,需要手动把一台从节点服务器切换为主节点服务器,手动实现老大...
  • 1、哨兵机制图解 2、哨兵机制的作用 ...2 )每个哨兵节点每隔2秒会向redis数据节点的指定频道上发送该哨兵节点对于主节点的判断以及当前哨兵节点的信息,同时每个哨兵节点也会订阅该频道,来了解其
  • Redis哨兵机制原理详解

    千次阅读 2021-01-15 23:53:31
    哨兵模式:(心跳检测机制) 前面说到主从模式其实是一种数据的备份方式,如果master宕机了,需要手动切换,并且还要切换客户端的连接数据源。这就无法达到高可用。哨兵模式就可以解决这一问题。 哨兵是特殊的...
  • 搭建一主二从三哨兵 作用:读写分离 容灾恢复 启动多台redis容器,修改配置文件中的端口号以及日志文件名称 其实对于容器,可以不修改端口,只需启动容器时映射不同的端口即可 1 修改master和slave的配置文件 master...
  • redis哨兵模式原理

    2021-09-24 17:22:24
    redis哨兵模式架构 哨兵模式工作原理 哨兵如何判断master宕机 故障转移过程 主节点写压力过大 集群脑裂 主从数据不一致 总结 概述  为了实现redis集群的高可用,redis经历了好几次迭代,从最开始的主从模式,到哨兵...
  • Redis哨兵模式以及工作原理 哨兵的作用 通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器。 当哨兵监测到master宕机,会自动将slave切换成master,然后通过发布订阅模式通知其他的从...
  • Redis 除了具有非常高的性能之外,还需要保证高可用,在故障发生时,尽可能地降低故障带来的影响,Redis提供了哨兵模式,来进行故障恢复。 哨兵主要负责做三件事: ①监控,监控主、从节点是否正常运行 ②选主,...
  • 主从切换技术的方法是:...哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。...
  • Sentinel(哨兵)是Redis 的高可用性解决方案,通过哨兵可以创建一个当主服务器出现故障时自动将从服务器升级为主服务器的分布式系统。解决了主从复制出现故障时需要人为干预的问题。 一、背景引入 Redis 的主从...
  • redis哨兵模式选举机制

    千次阅读 2020-10-15 10:29:20
    redis集群的主节点故障时,Sentinel集群将从剩余的从节点中选举一个新的主节点,有以下步骤: 故障节点主观下线故障节点客观下线Sentinel集群选举LeaderSentinel Leader决定新主节点 选举过程 1、主观下线 ...
  • redis哨兵模式配置

    2021-11-04 12:16:38
    哨兵是特殊的redis服务,不提供读写服务,主要用来监听redis节点,哨兵模式下,客户端第一次通过哨兵代理访问redis主节点,后续继续访问主节点; 不会每次都通过sentinel代理访问主节点,当redis主节点发生变化,...
  • Redis哨兵模式 什么是Redis哨兵模式 Redis Sentinel 是一个分布式系统, 你可以在一个架构中运行多个 Sentinel 进程(progress), 这些进程使用流言协议(gossip protocols)来接收关于主服务器是否下线的信息,并...
  • redis哨兵模式讲解

    千次阅读 2019-09-09 16:52:23
    然后简要说明哨兵实现的基本原理;最后给出关于哨兵实践的一些建议。(注:文章内容基于 Redis 3.0 版本) 哨兵的作用和架构 哨兵的作用 在介绍哨兵之前,首先从宏观角度回顾一下 Redis 实现高可用相关的技术。 ...
  • redis哨兵模式

    千次阅读 2020-07-22 16:37:16
    通俗来讲哨兵模式的出现是就是为了解决我们主从复制模式中需要我们人为操作的东西变为自动版,并且它比人为要更及时 2.哨兵主要功能(做了哪些事) 监控(Monitoring):哨兵会不断地检查主节点和从节点是否运作...
  • Redis 哨兵模式详解

    万次阅读 2018-05-02 15:52:07
    1、Sentinel 哨兵Sentinel(哨兵)是Redis的高可用性解决方案:由一个或多个Sentinel实例组成的Sentinel系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,...
  • Redis哨兵模式搭建

    2021-08-24 21:25:44
    哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。 这里的哨兵有两个作用 ...
  • Redis哨兵机制 或者心跳机制 模式 原理详解

    万次阅读 多人点赞 2018-08-20 23:02:09
    转载自https://blog.csdn.net/yswKnight/article/details/78158540 ...amp;fps=1 一.什么是哨兵机制? 答:Redis哨兵(sentinel) 系统用于管理多个 Redis 服务器,该系...
  • 1、哨兵 哨兵(Sentinel)主要是为了解决在主从复制架构中出现宕机的情况,主要分为两种情况: 1.1 从Redis宕机 这个相对而言比较简单,在Redis中从库重新启动后会自动加入到主从架构中,自动完成同步数据。在Redis2.8版本...
  • Redis哨兵模式简介

    2020-06-23 08:10:20
    目录 1.哨兵简介 1.启动哨兵模式 ...针对上述场景,引入了哨兵模式的概念,哨兵(sentinel) 是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的master并将所...
  • 目录 主从切换技术 哨兵模式 哨兵的作用 哨兵集群以及选举过程 ...当主服务器宕机后, 需要手动把一台从服务器切换为主服务器,这就需要人工干预, 费事费力, 还...哨兵模式是一种特殊的模式,Redis提供了哨兵的命令...
  • Sentinel 哨兵中的应用: Sentinel服务器与Master服务器/Slave服务器之间的订阅发布系统是Sentinl监控过程的一个重要环节,通过订阅发布系统达到监控服务器...Redis哨兵模式(sentinel)(主从复制、读写分离、主从切换
  • 一、redis高可用方案:哨兵模式 哨兵模式Redis的一种常见的高可用方案,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,162
精华内容 4,864
关键字:

redis哨兵模式原理

redis 订阅