哨兵的核心功能是主節點的自動故障轉移。
下圖是一個典型的哨兵集群監控的邏輯圖:
哨兵實現了什么功能呢?下面是Redis官方文檔的描述:
監控(Monitoring):哨兵會不斷地檢查主節點和從節點是否運作正常。
自動故障轉移(Automatic failover):當主節點不能正常工作時,哨兵會開始自動故障轉移操作,它會將失效主節點的其中一個從節點升級為新的主節點,并讓其他從節點改為復制新的主節點。
配置提供者(Configuration provider):客戶端在初始化時,通過連接哨兵來獲得當前Redis服務的主節點地址。
通知(Notification):哨兵可以將故障轉移的結果發送給客戶端。
其中,監控和自動故障轉移功能,使得哨兵可以及時發現主節點故障并完成轉移;而配置提供者和通知功能,則需要在與客戶端的交互中才能體現。