面试题答案
一键面试replSetName
- 含义:副本集的名称,用于标识一组相互复制数据的MongoDB实例集合。
- 作用:它是副本集内成员之间相互识别和通信的重要标识。所有属于同一个副本集的成员必须配置相同的
replSetName
。当MongoDB实例启动时,它会根据这个名称来判断是否属于同一副本集,进而进行同步和选举等操作。例如,在一个具有主节点、从节点和仲裁节点的副本集中,所有节点都通过相同的replSetName
知道自己是该副本集的一部分。
priority
- 含义:节点的优先级,是一个数值,取值范围为0到1000(默认值为1)。
- 作用:该配置项在选举主节点的过程中起着关键作用。优先级较高的节点在选举时更有可能被选为新的主节点。例如,优先级为1000的节点在选举时会比优先级为1的节点具有更大优势。当主节点出现故障时,副本集中的其他节点会根据优先级来竞争成为新的主节点。优先级为0的节点不会参与主节点的选举,只能作为数据的被动复制节点,主要用于数据备份或离线分析等场景。
arbiterOnly
- 含义:这是一个布尔值配置项,用于标识该节点是否为仲裁节点。当设置为
true
时,该节点就是仲裁节点;设置为false
(默认值)时,该节点为普通的数据节点。 - 作用:仲裁节点不存储数据,它的主要作用是在副本集选举过程中参与投票,帮助确定新的主节点。仲裁节点通过与其他数据节点进行通信,在选举时为符合条件的节点投出赞成票。例如,在一个具有两个数据节点的副本集中,如果没有仲裁节点,当其中一个数据节点出现故障时,另一个数据节点无法获得多数票,副本集就无法选出新的主节点,导致服务中断。而加入一个仲裁节点后,仲裁节点可以参与投票,使得选举能够顺利进行,确保副本集的高可用性。