【Redis主從架構】Redis主從如何做到99.99%高可用
1. 什麼是系統99.99高可用?
如果你的系統可以保證全年,99.99%的事件內,都是處於高可用的狀態,那麼就可以稱爲高可用
99.9, 99% 都可以統稱爲高可用
80%可用,低可用性
定義:如果說你的系統可以保證在全年,99.99%的時間內,都是處於可用狀態的,那麼就可以稱之爲高可用性
2. 什麼是系統不可用?
1. 機器死機了,宕機了
2. jvm進程OOM了,掛了
3. 機器CPU打滿了,不工作了。
4. 磁盤滿了,系統各種IO報錯了,不工作了。
5. …
各種原因,都可能導致你的系統掛掉,沒法提供服務,請求過來,什麼都沒有,沒有任何響應,系統起不來,沒法賣東西。
3. redis不可用
3.1 什麼會導致redis不可用?
- (1) redis進程死掉了
- (2)redis進程所在的機器死掉了
- (3) 緩存不可用,請求都到mysql上去了,大量流量跑到mysql上去,導致mysql宕機;mysql宕機,導致系統不可用。
3.2 slave node掛掉了會怎麼樣?master node掛掉了有會怎麼樣?
正常情況下,如果是一個slave node掛掉了,是不會影響可用性的,還有其他的各種slave node提供相同的對外查詢服務。
- 但是,如果是master node死掉了呢?
導致後果:沒法寫數據了,寫緩存失效了,沒法想slave node同步數據量,相當於不可用了。
4. redis基於哨兵的高可用性
-
redis高可用架構,又叫做故障轉移,failover,也可以稱爲主備切換。
-
通過哨兵 sentinal node,可以實時監測redis節點的健康情況,當master節點故障時,自動檢測,並且將某個slave node自動切換爲 master node的過程,稱爲主備切換。這個過程實現了redis的主從架構的高可用性。
所以,一旦mater故障,在很短的時間內,sentinal node就會切換到另一個master上去,redis可能就幾分鐘不可用
參考 石衫老師 《億級流量教程》課程筆記