2024-05-02  阅读(67)
版权声明:本文为博主付费文章,严禁任何形式的转载和摘抄,维权必究。 本文链接:https://www.skjava.com/mianshi/baodian/detail/1812590831

回答

Sentinel(哨兵) 是运行在特殊模式下的 Redis 服务器。它不支持读写操作,主要作用是配合 Redis 的主从复制功能,实现对主从节点的监控、对下线的主节点进行故障转移和通知。

Sentinel 主要有如下几个功能:

  • 监控Sentinel 会监控所有 Redis 节点的状态。
  • 自动故障转移:如果 Redis 主节点无法正常工作,Sentinel 可以自动将这个主节点下的一个从节点升级为新的主节点,并让其他从节点指向这个新的主节点。
  • 通知:当 Sentinel 选举了新的主节点后,可以通过 API 向客户端进行通知。
  • 配置提供者:客户端在初始化时,通过连接 Sentinel 来获得当前Redis服务的主节点地址。

监控和自动故障转移使得 Sentinel 能够完成主节点故障发现和自动转移,配置提供者和通知则是实现通知客户端主节点变更的关键。

扩展

Sentinel 的架构

Sentinel 的架构中,一般包含两个部分:

  • 多个Sentinel节点:为了保证 Sentinel 的高可用性和避免单点故障,通常需要部署多个 Sentinel 实例(推荐至少 3 个)。这些实例相互监控,以确保系统的稳定性和可靠性。
  • Redis 数据节点:由主节点和从节点组成的数据节点

核心原理