签到成功

知道了

CNDBA社区CNDBA社区

Redis 哨兵 odown 和 sdown 状态说明

2024-10-29 10:50 743 0 转载 Redis
作者: dave

本文由大模型生成http://www.cndba.cn/dave/article/131590

在Redis中,odown(Objectively Down)和sdown(Subjectively Down)是两种与Redis Sentinel(哨兵)相关的状态标识,用于指示Redis实例(主要是master节点)的可用性状态。以下是两者的详细区别:

一、定义与判断标准

  1. sdown(Subjectively Down)

    http://www.cndba.cn/dave/article/131590
    http://www.cndba.cn/dave/article/131590

    • 定义:sdown表示“主观宕机”,即当前Sentinel实例认为某个Redis服务(通常是master节点)为“不可用”状态。
    • 判断标准:当一个Sentinel实例向某个Redis实例发送PING请求时,如果在指定的“down-after-milliseconds”时间内没有收到有效的PONG回复(有效的回复还包括-LOADING和-MASTERDOWN),则该Sentinel实例会将该Redis实例标记为sdown。
  2. odown(Objectively Down)http://www.cndba.cn/dave/article/131590

    • 定义:odown表示“客观宕机”,即多个Sentinel实例都认为某个master节点处于sdown状态,那么此时该master节点将被标记为odown。
    • 判断标准:当足够数量的Sentinel实例(达到quorum值)都认为某个master节点处于sdown状态时,该master节点将被标记为odown。这通常意味着该master节点已经无法在集群中正常工作,需要进行故障转移(failover)。

二、适用范围与影响

  1. 适用范围http://www.cndba.cn/dave/article/131590

    • sdown状态适用于所有Redis实例,包括master和slave节点。
    • odown状态仅适用于master节点。
  2. 影响

    http://www.cndba.cn/dave/article/131590

    • 当一个Redis实例被标记为sdown时,仅表示当前Sentinel实例认为该实例不可用,其他Sentinel实例可能仍然认为该实例是可用的。
    • 当一个master节点被标记为odown时,将触发Sentinel的故障转移机制,选择一个slave节点作为新的master节点,并确保集群的可用性。

三、转换过程与监控

  1. 转换过程http://www.cndba.cn/dave/article/131590

    • 从sdown到odown的转换:当一个Sentinel实例检测到某个master节点处于sdown状态时,它会向其他Sentinel实例发送“is-master-down-by-addr”请求以确认该状态。如果足够多的Sentinel实例(达到quorum值)都确认该master节点处于sdown状态,则该master节点将被标记为odown。
    • 从odown到可用状态的转换:当被标记为odown的master节点重新变得可用时(例如,由于网络问题导致的短暂宕机后恢复),Sentinel集群将重新评估其状态,并可能将其标记为可用状态。
  2. 监控http://www.cndba.cn/dave/article/131590http://www.cndba.cn/dave/article/131590

    • Sentinel实例会定期向所有已知的Redis实例(包括master和slave节点)以及其他Sentinel实例发送PING请求以监控其状态。
    • 通过配置“sentinel monitor”命令和相关参数(如quorum值、down-after-milliseconds等),可以定制Sentinel的监控行为和故障转移策略。

综上所述,sdown和odown是Redis Sentinel用于指示Redis实例可用性的两种状态标识。sdown表示主观宕机,由单个Sentinel实例判断;而odown表示客观宕机,由多个Sentinel实例共同判断。这两种状态在适用范围、影响以及转换过程上都有所不同。http://www.cndba.cn/dave/article/131590

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2261
    原创
  • 3
    翻译
  • 578
    转载
  • 191
    评论
  • 访问:7966238次
  • 积分:4346
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ