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個哨兵執行著,就可以進行故障轉移。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69923331/viewspace-2702803/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 10.Redis哨兵架構Redis架構
- Redis基礎篇(七)哨兵機制Redis
- Redis持久化、主從與哨兵架構詳解Redis持久化架構
- MySQL基礎架構MySql架構
- Oracle基礎構架Oracle
- MySQL 基礎架構MySql架構
- redis哨兵 ,redis叢集 快取 以及某些問題: 最左字首原則,,celery架構Redis快取架構
- redis 哨兵Redis
- Redis哨兵Redis
- 架構設計之一——基礎架構架構
- MySQL基礎架構分析MySql架構
- 探索ABP基礎架構架構
- MySQL之基礎架構MySql架構
- 搭建基礎架構-Page架構
- Redis基礎資料結構Redis資料結構
- Spring Cloud雲架構-Restful 基礎架構SpringCloud架構REST
- 《架構基礎 從需求到架構》讀書架構
- Redis哨兵sentinelRedis
- redis系列:哨兵Redis
- Redis哨兵模式Redis模式
- 《大前端 基礎元件》系列 CSS基礎架構前端元件CSS架構
- Redis基礎——剖析基礎資料結構及其用法Redis資料結構
- 基礎架構遷雲(一)架構
- 基礎架構遷雲二()架構
- 基礎架構遷雲(三)架構
- 探索ABP基礎架構-下架構
- HotDB 基礎架構詳解架構
- RESTful 架構 基礎講解REST架構
- Mysql實戰:基礎架構MySql架構
- 搭建基礎架構-ResultMsg架構
- ES 架構及基礎 - 1架構
- IT架構的基礎實施架構
- Angular基礎筆記(架構)Angular筆記架構
- 集團資訊基礎架構架構
- 銀行IT架構變遷史(金融IT基礎架構)架構
- redis哨兵機制Redis
- 【Redis】Sentinel 哨兵模式Redis模式
- Redis 哨兵機制Redis