標籤:轉移 ack mysql 儲存 一個 live 可用性 方式 哨兵
在互連網的大趨勢下,使用者體驗、服務的可用性日趨重要。任何一個服務的不可用,都可能導致連鎖式功能故障。
前言
高可用模型的已經逐漸形成一種套路:
主備/主從模式
至少有兩台服務節點master和backup/slave。同一時刻只有一台服務節點對外提供服務——master,backup/slave之一作為備/從機。當master宕機後,立即切換至backup/slave之一,backup/slave之一成為master,對外提供服務。
從主備/主從有無互動的角度可以劃分:
- 主從互動:如mysql主從維持心跳,同步資料
- 主從不互動模式:nginx主備不互動,keepalive保證vip綁定
從容錯移轉方式角度劃分:
- 利用第三方組件實現故障自動轉移/主從切換:如使用keepalive實現主從切換
- 主從伺服器軟體自故障自動轉移:如Redis Sentinel主從模式由Redis自實現
- 手動切換,轉移故障:營運人員介入,經過操作實現切換
叢集模式
至少有兩台服務節點群組成服務節點的群體,用戶端常藉助各種路由演算法:
使得群體中的每個服務節點都對外提供一致性協同服務。即是叢集的某一個或者某一些服務節點宕機,正常的節點仍能對外提供顯示狀態服務,保證服務的高可用。叢集模式天然的具有高可用特徵。
Redis中的高可用
讓Redis使用者慶幸的是Redis中對這兩種高可用模式都做了相應的實現。
Redis提供了Sentinel哨兵模式,即是主從模式的標準實現。Sentinel哨兵模式中,分為哨兵和儲存兩種類型節點。哨兵節點負責維護、監控、切換儲存節點,儲存節點主要負責提供資料管理能力——即單機Redis能力。
同時Redis還提供了叢集模式,Redis的叢集模式是Redis 3.0引入的新特徵。整個叢集中每個節點都作為儲存節點,對外協同服務。
同時使用者還可以簡單的利用SHELL和Keepalive實現Redis的主從模式,不過在Redis完善的Sentinel模式下,這種方式就相形見絀了。
Redis(九)高可用專欄之《簡介篇》