Redis集群为什么至少需要三个master节点,并且推荐节点数为奇数?
問題一:Redis集群為什么至少需要三個(gè)master節(jié)點(diǎn)?
因?yàn)樾耺aster的選舉需要大于半數(shù)的集群master節(jié)點(diǎn)同意才能選舉成功,如果只有兩個(gè)master節(jié)點(diǎn),當(dāng)其中一個(gè)掛了,是達(dá)不到選舉新master的條件的。
?
?
問題二:Redis集群為什么推薦節(jié)點(diǎn)數(shù)為奇數(shù)?
奇數(shù)個(gè)master節(jié)點(diǎn)可以在滿足選舉該條件的基礎(chǔ)上節(jié)省一個(gè)節(jié)點(diǎn),比如三個(gè)master節(jié)點(diǎn)和四個(gè)master節(jié)點(diǎn)的集群相比,大家如果都掛了一個(gè)master節(jié)點(diǎn)都能選舉新master節(jié)點(diǎn),如果都掛了兩個(gè)master節(jié)點(diǎn)都沒法選舉新master節(jié)點(diǎn)了,所以奇數(shù)的master節(jié)點(diǎn)更多的是從節(jié)省機(jī)器資源角度出發(fā)說的。
例如:
在9個(gè)master的架構(gòu)中,如果4臺(tái)master故障,通過過半機(jī)制,redis可以選舉新的master。如果5臺(tái)master故障無法選舉新的master
在10個(gè)master的架構(gòu)中,如果4臺(tái)master故障,通過過半機(jī)制,redis可以選舉新的master。如果5臺(tái)master故障無法選舉新的master
在高可用方面,9臺(tái)master與10臺(tái)master一致。所以通常會(huì)使用奇數(shù)。假設(shè)現(xiàn)在reids內(nèi)存不足需要拓展,我們將master的數(shù)量加到11臺(tái),就高可用方面來說,就算其中5臺(tái)master發(fā)送故障,也可以自動(dòng)選舉新的master。
總結(jié)
以上是生活随笔為你收集整理的Redis集群为什么至少需要三个master节点,并且推荐节点数为奇数?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Unity对于手柄的支持
- 下一篇: mysql 多个主码_数据库中几个基本概