您好,登錄后才能下訂單哦!
本篇內容介紹了“redis哨兵架構的基礎知識整理”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
1. 哨兵的介紹
sentinel , 中文是哨兵。
哨兵是redis 集群架構中非常重要的一個組件,主要功能如下:
(1)集群監控:負責監控reidis master 和slave 進程是否正常工作;
(2)消息通知:如果某個redis實例有故障,那么哨兵負責發送消息作為報警通知給管理員;
(3)故障轉移:如果master node掛掉了,會自動轉移到slave node上;
(4)配置中心:如果故障轉移發生了,通知client 客戶端新的master 地址;
哨兵本身也是分布式的作為一個哨兵集群去運行,互相協同工作;
(1)故障轉移時, 判斷一個master node宕機了,需要大部分的哨兵都同意才行,涉及到了分布式選舉的問題;
(2)即使部分哨兵節點掛了,哨兵集群還是能正常工作的,因為如果 一個作為高可用機制重要組成部分的故障轉移系統本身是單點的,那就坑爹了;目前采用的是sentinel 2 版本,sentinel2 相對于 sentinel 1 來說,重寫了很多代碼,主要是讓故障轉移的機制和算法變得更加健壯和簡單。
2. 哨兵的核心知識
(1)哨兵至少需要3個實例,來保證自己的健壯性;
(2)哨兵+redis 主從的部署架構,是不會保證數據0丟失的,只能保證redis 集群的高可用性;
(3)對于哨兵+redis主從這種負責的部署架構,盡量在測試環境和生產環境,都進行充足的測試和演練;
3. 為什么redis 哨兵集群只有2個節點無法正常工作?
哨兵集群必須部署2個以上節點,如果哨兵集群僅僅部署了2個哨兵實例,quorum=1
M1 R1
S1 S2
Configuration:quorum = 1 (哨兵節點只要1個認為宕機就可以進行切換了)
master 宕機,s1 和 s2 中只要有一個哨兵認為宕機就可以進行切換,同時s1和s2中會選舉出一個哨兵來進行故障轉移,同時這個時候,需要majority,也就是大多數哨兵都是運行的,2個哨兵的majority就是2,2個哨兵都運行這,就可以允許執行故障轉移,但是整個M1和S2運行的機器宕機了,那么哨兵只有1個了,此時就沒有majority來允許執行故障轉移,雖然另外一臺機器還有一個R1,但是故障轉移不會執行;
4. 經典的3節點哨兵集群
M1
S1
R2 R3
S2 S3
Configuration:quorum = 2 majoiry
如果M1所在機器宕機了,那么3個哨兵還剩下2個,S2和S3可以一致認為master 宕機,然后選舉一個來執行故障轉移;同時3個哨兵的majoiry = 2 , 所以還剩下2個哨兵運行著,就可以進行故障轉移。
“redis哨兵架構的基礎知識整理”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。