Replication
MongoDB:兩個節點和初選
根據 Mongo 文件,為了安全地部署複製集,您至少需要兩個活動和一個仲裁者,因為主節點的選舉需要多數票。
假設我可以擁有三台機器,因此部署三個成熟的 mongo 實例,沒有仲裁器。
如果選出的主節點失敗,我最終會得到兩個節點,它們都具有相同的“功率”級別:對我來說,這似乎是部署時描述的必須避免的情況。
如果初始設置相同,有人可以解釋為什麼在這種情況下選擇主節點不是問題?
只要兩個節點都可用,在兩個節點集中選擇一個主節點就不是問題。規則是該集合的大多數人需要成功才能成功選舉一個主節點。
在兩個節點集中:
- 如果兩個節點都啟動,它可以選舉一個主節點
- 如果只有一個節點啟動,它不會看到多數,並且將保持只讀狀態
在三節點集中:
- 如果三個節點都啟動了,一個可以成為主節點
- 如果兩個節點都啟動了,一個可以成為主節點
- 如果只有一個節點啟動,它是只讀的
兩個節點 + 仲裁器集的行為就像一個三節點集,因此如果任何一個節點(包括仲裁器)發生故障,它可以選舉一個主節點。
重要的是要意識到只有兩個投票節點的集合在沒有寫冗餘的情況下執行。您不希望創建一個始終以這種方式執行的集合(因此,仲裁器),並且您還希望在發生中斷時盡快恢復第三個節點。