您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關redis中的哨兵機制,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
redis高可用:如果你做主從架構部署,其實就是加上哨兵就可以了,就可以實現,任何一個實例宕機,自動會進行主備切換。
哨兵機制
有了主從復制的實現以后,如果想對主服務器進行監控,那么在redis2.6以后提供了一個"哨兵"的機制。顧名思義,哨兵的含義就是監控redis系統的運行狀態。可以啟動多個哨兵,去監控redis數據庫的運行狀態。其主要功能有兩點:
a、監控所有節點數據庫是否在正常運行。
b、master數據庫出現故障時,可以自動通過投票機制,從slave節點中選舉新的master,實現將從數據庫轉換為主數據庫的自動切換。
一個一主多從的Redis系統中,可以使用多個哨兵進行監控任務以保證系統足夠穩健。此時,不僅哨兵會同時監控主數據庫和從數據庫,哨兵之間也會相互監控。在這里,建議大家哨兵至少部署3個,并且使用奇數個哨兵。
Redis的哨兵(sentinel) 系統用于管理多個 Redis 服務器,該系統執行以下三個任務:
監控(Monitoring): 哨兵(sentinel) 會不斷地檢查你的Master和Slave是否運作正常。
提醒(Notification):當被監控的某個 Redis出現問題時, 哨兵(sentinel) 可以通過 API 向管理員或者其他應用程序發送通知。
自動故障遷移(Automatic failover):當一個Master不能正常工作時,哨兵(sentinel) 會開始一次自動故障遷移操作,它會將失效Master的其中一個Slave升級為新的Master, 并讓失效Master的其他Slave改為復制新的Master; 當客戶端試圖連接失效的Master時,集群也會向客戶端返回新Master的地址,使得集群可以使用Master代替失效Master。
哨兵(sentinel) 是一個分布式系統,你可以在一個架構中運行多個哨兵(sentinel) 進程,這些進程使用流言協議(gossipprotocols)來接收關于Master是否下線的信息,并使用投票協議(agreement protocols)來決定是否執行自動故障遷移,以及選擇哪個Slave作為新的Master.
每個哨兵(sentinel) 會向其它哨兵(sentinel)、master、slave定時發送消息,以確認對方是否”活”著,如果發現對方在指定時間(可配置)內未回應,則暫時認為對方已掛(所謂的”主觀認為宕機” Subjective Down,簡稱sdown).
若“哨兵群”中的多數sentinel,都報告某一master沒響應,系統才認為該master"徹底死亡"(即:客觀上的真正down機,Objective Down,簡稱odown),通過一定的vote算法,從剩下的slave節點中,選一臺提升為master,然后自動修改相關配置.
雖然哨兵(sentinel) 釋出為一個單獨的可執行文件 redis-sentinel ,但實際上它只是一個運行在特殊模式下的 Redis 服務器,你可以在啟動一個普通 Redis 服務器時通過給定 --sentinel 選項來啟動哨兵(sentinel)。
以上就是redis中的哨兵機制,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。