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