1. 哨兵模式 1.1 哨兵模式的结构和作用 哨兵(Sentinel)是 Redis 官方提供的一种高可用方案,它可以监控多个 Redis 服务实例的运行情况。本质上,Sentinel 也是一个运行在特殊模式下的 Redis 服务器。主从复制模式下,一般会配置多个 Sentinel 节点,通过互相协作来实现系统的高可用。 1.2 哨兵模式的作用 Sentinel 模式的作用如下: (1)监控:Sentinel 不断的检查主服务和从服务器是否按照预期正常工作; (2)提醒:被监控的 Redis 出现问题时,Sentinel 会通知管理员或其他应用程序; (3)自动故障转移:监控的主 Redis 不能正常工作,Sentinel 会自动进行故障迁移操作。即将一个从服务器升级新的主服务器,并让其他从服务器挂到新的主服务器,同时向客户端提供新的主服务器地址。 1.3 Sentinel 监控原理 Sentinel 基于心跳机制监测服务状态,每隔 1 秒向集群的每个实例发送 ping 命令: (1)主观下线:如果某 sentinel 发现某实例未在规定时间响应,则认为该实例主观下线。 (2)客观下线:若超过指定数量(quorum)的 sentinel 都认为该实例主观下线,则该实例客观下线。quorum 值最好超过 Sentinel 实例数量的一半。 2. 哨兵模式小结 (1)Sentinel 会不断检查 Master 和 Slave 是否正常; (2)如果 Sentinel 挂了,就无法监控,所以需要多个哨兵,组成 Sentinel 网络,一个健康的 Sentinel 至少有 3 个 Sentinel 应用; (3)监控同一个 Master 的 Sentinel 会自动连接,组成一个分布式的 Sentinel网络,互相通信并交换彼此关于被监控服务器的信息; (4)当一个 Sentinel 认为被监控的服务器已经下线时,它会向网络中的其它Sentinel 进行确认,判断该服务器是否真的已经下线; (5)如果下线的服务器为主服务器,那么 Sentinel 网络将对下线主服务器进行自动故障转移。通过将下线主服务器的某个从服务器提升为新的主服务器,并让其从服务器转移到新的主服务器下,以此来让系统重新回到正常状态; (6)下线的旧主服务器重新上线,Sentinel 会让它成为从节点,挂到新的主服务器下。
标签:数据库,Redis,哨兵,监控,Sentinel,服务器,下线 From: https://www.cnblogs.com/qiqi-yi/p/17289334.html