回答
Sentinel
(哨兵) 是运行在特殊模式下的 Redis 服务器。它不支持读写操作,主要作用是配合 Redis 的主从复制功能,实现对主从节点的监控、对下线的主节点进行故障转移和通知。
Sentinel
主要有如下几个功能:
- 监控:
Sentinel
会监控所有 Redis 节点的状态。 - 自动故障转移:如果 Redis 主节点无法正常工作,
Sentinel
可以自动将这个主节点下的一个从节点升级为新的主节点,并让其他从节点指向这个新的主节点。 - 通知:当
Sentinel
选举了新的主节点后,可以通过 API 向客户端进行通知。 - 配置提供者:客户端在初始化时,通过连接
Sentinel
来获得当前Redis服务的主节点地址。
监控和自动故障转移使得 Sentinel
能够完成主节点故障发现和自动转移,配置提供者和通知则是实现通知客户端主节点变更的关键。
扩展
Sentinel 的架构
在 Sentinel
的架构中,一般包含两个部分:
- 多个Sentinel节点:为了保证
Sentinel
的高可用性和避免单点故障,通常需要部署多个Sentinel
实例(推荐至少 3 个)。这些实例相互监控,以确保系统的稳定性和可靠性。 - Redis 数据节点:由主节点和从节点组成的数据节点