為什麼redis哨兵集群只有2個節點無法正常工作?

2021-08-14 23:11:23 字數 856 閱讀 3019

哨兵集群必須部署2個以上節點

如果哨兵集群僅僅部署了個2個哨兵例項,quorum=1

+----+         +----+

| m1 |---------| r1 |

| s1 | | s2 |

+----+ +----+

configuration: quorum = 1

master宕機,s1和s2中只要有1個哨兵認為master宕機就可以還行切換,同時s1和s2中會選舉出乙個哨兵來執行故障轉移

同時這個時候,需要majority,也就是大多數哨兵都是執行的,2個哨兵的majority就是2(2的majority=2,3的majority=2,5的majority=3,4的majority=2),2個哨兵都執行著,就可以允許執行故障轉移

但是如果整個m1和s1執行的機器宕機了,那麼哨兵只有1個了,此時就沒有majority來允許執行故障轉移,雖然另外一台機器還有乙個r1,但是故障轉移不會執行

+----+

| m1 |

| s1 |

+----+

|+----+ | +----+

| r2 |----+----| r3 |

| s2 | | s3 |

+----+ +----+

configuration: quorum = 2,majority

如果m1所在機器宕機了,那麼三個哨兵還剩下2個,s2和s3可以一致認為master宕機,然後選舉出乙個來執行故障轉移

同時3個哨兵的majority是2,所以還剩下的2個哨兵執行著,就可以允許執行故障轉移

redis之哨兵集群(2)

前面提到過,如果乙個哨兵在執行過程中發生故障,那麼是不是還能進行主從庫切換 實際上一旦多個例項組成了哨兵集群,即使有哨兵例項出現故障掛掉了,其他哨兵還能繼續協作完成主從庫切換的工作,包括判定主庫是不是處於下線狀態,選擇新主庫,以及通知從庫和客戶端。配置哨兵所用到的資訊 sentinel monito...

為什麼需要 Redis 哨兵?

在說哨兵之前,我們先說下主從複製,redis 的主從複製模式,一旦主節點出現故障無法提供服務,需要人工介入手工將從節點調整為主節點,同時應用端還需要修改新的主節點位址,這種故障轉移的方式對於很多應用場景是不能容忍的。正式由於這個問題,redis 提供了 sentinel 哨兵 架構來解決這個問題。r...

Redis 哨兵集群

redis核心技術與實戰 08 哨兵掛了,還能監測主庫狀態,保證服務不間斷嗎?多個例項組成哨兵集群,即使乙個哨兵掛掉了,其他哨兵也可以繼續協作完成主從庫切換的工作,包括判定主庫是不是處於下線狀態,選擇新主庫,以及通知從庫和客戶端。在配置哨兵的資訊時,我們只需要用到下面的這個配置項,設定主庫的 ip ...