Redis Sentinel

一、架构定位与第一性原理

1.1 Sentinel 的本质定义

Redis Sentinel 是一个:

去中心化的主节点裁决系统(Distributed Master Arbitration System), 在 异步复制 + 弱一致性 的前提下, 为 Redis 主从架构提供 自动化故障发现、主节点切换与客户端重定向能力

它并不复制数据,也不参与业务请求处理,而是专注于一个核心问题:

当“谁是主节点”出现不确定性时,由谁、以什么规则、在什么条件下做出裁决。


1.2 Sentinel 解决的问题与不解决的问题

维度 Sentinel 做的事 Sentinel 不做的事
可用性 自动主从切换 不保证服务零中断
一致性 裁决主节点身份 不保证数据不丢失
架构职责 状态感知与协调 不参与数据复制
客户端 提供主节点发现 不屏蔽业务异常

关键设计取舍:Sentinel 明确选择了 可用性优先(Availability First)


二、整体架构与角色模型

2.1 系统角色分工(职责边界)

角色 核心职责 设计哲学
Redis Master 提供写服务 单点、性能优先
Redis Slave 数据复制、读扩展 异步、弱一致
Sentinel 主节点裁决与通知 去中心化、多数决
Client 连接与重试 感知变化、自适应

Sentinel 只负责“判断与通知”,而不是“修复所有问题”。


三、Sentinel 的能力模型(结构化认知)

3.1 能力树总览

Redis Sentinel 能力模型
├── 状态感知
│   ├── 心跳检测(Ping)
│   ├── 主观下线(sdown)
│   └── 客观下线(odown)
├── 共识裁决
│   ├── Gossip 信息扩散
│   ├── 法定人数(Quorum)
│   └── 领导者选举
├── 故障转移
│   ├── 新主节点选择策略
│   ├── 主从拓扑重组
│   └── 客户端变更通知
├── 系统协作
│   ├── 与 Redis Replication 协作
│   └── 与 Client 的契约
└── 运维治理
    ├── 部署与隔离策略
    ├── 多集群管理
    └── 运维控制接口

四、状态感知:从局部怀疑到系统事实

4.1 三类定时机制的抽象意义

Sentinel 的定时任务不是“实现细节”,而是 状态收敛机制

机制 抽象目的
INFO 拉取 构建全局拓扑视图
Gossip 消息 消除单点认知偏差
Ping 心跳 最小成本的生存探测

4.2 sdown 与 odown 的哲学差异

分布式系统的核心原则:单点怀疑 ≠ 系统事实


五、共识裁决:Sentinel 如何“达成一致”

5.1 Sentinel 与共识算法的关系

Sentinel 借鉴共识思想,但不是完整共识系统

维度 Sentinel Raft
目标 主节点裁决 日志一致性
一致性粒度 节点状态 数据操作
强度 弱一致 强一致
是否复制数据

Sentinel 的共识是 “是否切换 + 切到谁”,而不是“数据是否一致”。


5.2 为什么需要 Leader Sentinel

Leader 的角色:

共识的执行者,而不是权力中心


六、故障转移:一次受控的系统重组

6.1 新主节点选择的设计原则

选择顺序背后的抽象逻辑:

  1. **可达性优先**(活着比完整更重要)
  2. **数据新鲜度优先**(复制偏移量)
  3. **稳定性优先**(优先级、运行时间)

这不是“规则堆叠”,而是 风险最小化策略


6.2 故障转移的系统级因果链

节点异常
  ↓
主观下线(sdown)
  ↓
客观下线(odown)
  ↓
领导者选举
  ↓
新主节点裁决
  ↓
拓扑重组
  ↓
客户端感知变化

七、数据丢失:设计必然性,而非缺陷

7.1 数据丢失的根因模型

异步复制
  ↓
主从状态不一致
  ↓
网络分区
  ↓
错误主节点继续写入
  ↓
主备切换
  ↓
写入回滚(数据丢失)

7.2 Sentinel 的设计立场

Sentinel 不是为“零数据丢失”而生,而是为“快速恢复服务”而生。


八、部署与治理:架构稳定性的外延

8.1 Sentinel 数量与分布原则

8.2 一套 vs 多套 Sentinel

方案 优点 风险
单 Sentinel 集群 成本低 故障影响面大
多 Sentinel 集群 隔离性强 运维复杂

九、客户端协作模型(被忽视的关键角色)

客户端必须承担的责任:

没有“傻客户端”的高可用系统


十、选型与演进视角

10.1 Sentinel 适合的场景

场景 是否适合
缓存 / 会话
读多写少
简单高可用
强一致金融系统

10.2 与其他方案的哲学差异

关联内容(自动生成)