建议使用奇数组。我的疑问是一个人从一个奇怪的集合下来,我们有一个偶数集。成员人数逐渐下降时,会出现偶数和奇数之间的波动。我们始终没有奇怪的成员情况。有人可以解释一下MongoDB投票的工作原理吗?在MongoDB中投票
3
A
回答
18
投票是由多数投票成员完成。
想象一下包含三个(投票)成员的副本集。 假设节点A是主节点,节点B + C是辅助节点。 节点A关闭,所以节点B + C去选举。他们仍然占多数(三分之二)。选举首先由决定优先。如果两个节点B & C具有相同的优先级,则关于失败的主节点(oplog)的最新的节点获胜。假设它是节点B.
一旦节点A恢复活动,就不会有新的选举。节点B仍然是主节点,而C + A现在是辅助节点。另一方面,如果两个节点关闭,则不会有多数,所以副本集不能再接受更新(应用写入),直到至少两个失败的服务器中的一个变为活动状态(并且由单个幸存节点连接)。
想象一下,现在有四个(投票)成员的副本集。 假设节点A是主节点,节点B + C + D是辅助节点。 节点A关闭,所以节点B + C + D去选举。它们当然占多数(三分之四)
但是,如果两个节点关闭,你没有多数(四分之二),所以复制集再次处于只读模式。
所以这就是为什么建议使用奇数的原因;如果你在一个3成员副本集中失去一个成员,就像丢失一个4成员副本集中的单个成员一样:你仍然获得法定人数,并且可以选出一个新的主成员(RS仍然可以选择一个新的主成员多数)。另一方面,如果你在一个3成员副本集或4个成员副本集(或N/2副成员副本集)中松散了两个成员 - 再次 - 影响是相同的:没有新的领导者可以被投票通过选举。
因此,简而言之,通过在副本集中包含偶数个成员,不会有冗余收益。
更多
相关问题
- 1. MongoDB复制集投票
- 2. 投票投票墙
- 3. 投票与长投票
- 4. 投票重复投票
- 5. 投票 - 票数与投票率?
- 6. 简单的投票系统与MongoDB
- 7. 基于投票投票的JQuery多个百分比投票
- 8. 如何在投票中注册用户的投票?
- 9. Drupal在代码投票API中创建投票通过代码
- 10. 评论与投票行为投票
- 11. 使用asp.net和sql投票投票
- 12. AngularJS投票系统 - 防止多投票
- 13. 投票栏显示没有投票
- 14. 如何投票投票系统?
- 15. Django投票:按投票排序
- 16. 检查用户是否投票投票
- 17. 独特的男女投票谁投票
- 18. 计算投票中
- 19. 在投票系统
- 20. 防止第二票在评论投票
- 21. 投票不算
- 22. Python ACR122U投票
- 23. Reddit投票API
- 24. 投票网站
- 25. 编号投票
- 26. 投票系统,你会在同一个表中进行线程投票和评论投票吗?
- 27. 如何建立投票系统来支持多种投票类型的投票?
- 28. 如何在用户投票后禁用(相应)投票按钮?
- 29. 在投票系统上只允许每个人投一票
- 30. 如何在没有投票权的情况下在Rails中实现投票
通常解决这个的一个好方法是输入一个abrtitar到应用服务器专为投票 – Sammaye 2013-03-24 12:09:16