MongoDB中副本集中有个重要的概念:大多数

因为副本集只有一个节点为可读写,其他节点只可读;而主节点的选择由大多数决定的,只有在得到支持时才能继续作为主节点。

(1)大多数这个数字的确认公式:M=int((N/2)+1)

*大多数是指个数等于大于M,但是要小于等于N;N为副本集中服务器的总数

(2)一个副本集中一旦大多数不可用,整个副本集不可用;对于N是偶数的情况下,N/2个节点失效,整个副本集失效;

 

主节点选举机制:

(1)当备份节点连不上主节点,它会联系其他副本集成员将自己选举为主节点;

(2)其他成员会先做几项检查:

A.自身是否与主节点连通?

B.希望被选举为主节点的备份节点的数据是否是最新?

C.有没有其他优先级更高的成员可以被选举为主节点?

(3)只要一个“大多数”成员投了反对票,选举就否决了;只有候选人得到了“大多数”成员的赞成票,它就会成为主节点。