建议使用奇数组。我的疑问是一个人从一个奇怪的集合下来,我们有一个偶数集。成员人数逐渐下降时,会出现偶数和奇数之间的波动。我们始终没有奇怪的成员情况。有人可以解释一下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. 投票与长投票
- 2. 投票 - 票数与投票率?
- 3. 如何在投票中注册用户的投票?
- 4. 如何投票投票系统?
- 5. 独特的男女投票谁投票
- 6. 投票栏显示没有投票
- 7. 防止第二票在评论投票
- 8. 编号投票
- 9. 投票网站
- 10. Reddit投票API
- 11. 投票系统,你会在同一个表中进行线程投票和评论投票吗?
- 12. 如何建立投票系统来支持多种投票类型的投票?
- 13. 如何在用户投票后禁用(相应)投票按钮?
- 14. 在投票系统上只允许每个人投一票
- 15. iPhone:按钮“投票在AppStore”
- 16. 投票系统在ASP.NET MVC
- 17. 建模投票在GAE
- 18. django投票中的错误?
- 19. 从cookie中投票5次
- 20. 在rails 3中投票应用程序:我如何链接到投票方法?
- 21. 投票的问题
- 22. jQuery投票系统
- 23. JNI投票问题
- 24. JQuery投票问题
- 25. Java投票系统
- 26. Weka classifier meta投票
- 27. 投票方法 - Mysql
- 28. 投票服务 - C#
- 29. Rails投票站点
- 30. 数字投票Javascript
通常解决这个的一个好方法是输入一个abrtitar到应用服务器专为投票 – Sammaye 2013-03-24 12:09:16