MongoDB 复制集(二) 选举 自动故障切换(二)

2014-11-24 17:10:01 · 作者: · 浏览: 1
上面是说如果第二次确认还是通过的情况,那么如果最终确认没有通过呢。他们会投一个反对票,反对X成为 primary,如果有反对票产生,那么这一轮选举就失败了。X还是保持 secondary 的身份。 下面我们假设一种情况,如果Y给X投了赞成票,而Z给X投了反对票。那这时候Y由于投了赞成票,它在30秒内不能再进行投票。所以如果这时候Z发起选举想让自己成为 primary,那么Z这时候必须要获得X的赞成票。因为这时候Y不能投票,为了获取多数票,Z必须获得X的赞成票。所以投票的规则是这样的:如果没有人投反对票,并且赞成票的比例过半,那么本轮选举对象就能够成为 primary。

注:1.引发投票选举的事件: 复制集进行初始化的时候 当从节点失去与主节点的联系,号召大家来选举投票 主节点进行降级 2.引发节点进行降级的事件: 当主节点收到replSetStepDown 命令的时候 如果一个从节点拥有资格成为主节点,有比主节点更高优先级 当主节点和大多数从节点无法进行连通的时候 3. 当主节点变得不可用的时候会自动关闭和客户端得所有连接,这样可以保持客户端和 数据库得数据一致性。 4.Priortity0 成员不会触发选举操作,即使它们无法连接到主节点