为什么在主-次仲裁器MongoDB副本集中的选举需要仲裁器?
Mongo文档将以下内容列出:主、次、仲裁器,作为副本集的最小体系结构为什么在主-次仲裁器MongoDB副本集中的选举需要仲裁器?,mongodb,database-replication,Mongodb,Database Replication,Mongo文档将以下内容列出:主、次、仲裁器,作为副本集的最小体系结构 为什么那里需要仲裁人?如果主设备出现故障,辅助设备将看不到心跳信号,因此它需要成为主设备。换句话说,为什么主+辅助配置不够?这个问题似乎没有解决这个问题,因为它讨论了更多的节点。假设您只有两个服务器,一个主服务器和一个辅助服务器 如果辅助服务器突然无法到达主服务器,则可能是主服务器停机(在这种情况下,辅助服务器应成为主服务器),但也可能是隔离辅助服务器的网络问题(这是辅助服务器实际停机的原因) 但是,如果您有一个仲裁器,并且
为什么那里需要仲裁人?如果主设备出现故障,辅助设备将看不到心跳信号,因此它需要成为主设备。换句话说,为什么主+辅助配置不够?这个问题似乎没有解决这个问题,因为它讨论了更多的节点。假设您只有两个服务器,一个主服务器和一个辅助服务器 如果辅助服务器突然无法到达主服务器,则可能是主服务器停机(在这种情况下,辅助服务器应成为主服务器),但也可能是隔离辅助服务器的网络问题(这是辅助服务器实际停机的原因)
但是,如果您有一个仲裁器,并且次仲裁器无法到达主仲裁器,但它可以到达仲裁器,那么问题在于主仲裁器,因此它必须成为新的主仲裁器。如果它不能到达主服务器,也不能到达仲裁器,则次服务器知道问题在于它是隔离的/断开的-较差的次服务器:(-因此他不能成为主服务器假设您只有两台服务器,一台主服务器和一台次服务器 如果辅助服务器突然无法到达主服务器,则可能是主服务器停机(在这种情况下,辅助服务器应成为主服务器),但也可能是隔离辅助服务器的网络问题(这是辅助服务器实际停机的原因)
但是,如果您有一个仲裁器,而次仲裁器无法到达主仲裁器,但它可以到达仲裁器,则问题在于主仲裁器,因此它必须成为新的主仲裁器。如果它无法到达主仲裁器,也不能到达仲裁器,则次仲裁器知道问题在于他是孤立/损坏的-较差的次仲裁器:(-因此他不能成为主服务器假设您只有两台服务器,一台主服务器和一台辅助服务器 如果辅助服务器突然无法到达主服务器,则可能是主服务器停机(在这种情况下,辅助服务器应成为主服务器),但也可能是隔离辅助服务器的网络问题(这是辅助服务器实际停机的原因)
但是,如果您有一个仲裁器,而次仲裁器无法到达主仲裁器,但它可以到达仲裁器,则问题在于主仲裁器,因此它必须成为新的主仲裁器。如果它无法到达主仲裁器,也不能到达仲裁器,则次仲裁器知道问题在于他是孤立/损坏的-较差的次仲裁器:(-因此他不能成为主服务器假设您只有两台服务器,一台主服务器和一台辅助服务器 如果辅助服务器突然无法到达主服务器,则可能是主服务器停机(在这种情况下,辅助服务器应成为主服务器),但也可能是隔离辅助服务器的网络问题(这是辅助服务器实际停机的原因)
但是,如果您有一个仲裁器,而次仲裁器无法到达主仲裁器,但它可以到达仲裁器,则问题在于主仲裁器,因此它必须成为新的主仲裁器。如果它无法到达主仲裁器,也不能到达仲裁器,则次仲裁器知道问题在于他是孤立/损坏的-较差的次仲裁器:(-因此,他不能成为主要的如果你把仲裁人带到其核心,那么它本质上是一个用于投票的无数据持有成员 仲裁器的一种情况如我在链接问题中所述:打破CAP的问题,但这不是它的真正目的,因为您可以轻松地用数据保持节点替换仲裁器,并具有相同的效果 但是,仲裁人有几个好处:
- 小脚印
- 没有数据
- 不需要同步
- 可以立即投票
- 可以放在网络、应用服务器甚至其他辅助设备的任何位置,以增强网络的该部分(这将进入分区)
rs.config
中配置的可投票成员总数判断)
同样在本例中,MongoDB实际上并不知道最后一个成员是否是最后一个成员,它需要其他成员告诉它不是这样
所以,是的,这就是为什么你需要第三个人。如果你把仲裁人放在核心位置,它本质上是一个没有数据的成员,用于投票 仲裁器的一种情况如我在链接问题中所述:打破CAP的问题,但这不是它的真正目的,因为您可以轻松地用数据保持节点替换仲裁器,并具有相同的效果 但是,仲裁人有几个好处:
- 小脚印
- 没有数据
- 不需要同步
- 可以立即投票
- 可以放在网络、应用服务器甚至其他辅助设备的任何位置,以增强网络的该部分(这将进入分区)