MongoDB中hidden从库和仲裁节点的作用不同。
hidden从库
hidden从库是MongoDB副本集中的一个特殊类型的从库,它不参与读操作,只用于数据同步。
在配置hidden从库时,需要将其优先级设置为0,以确保它不会被用于读操作。
hidden从库可以提高系统的可用性和性能。
应用场景
在实际工作中,有时候需要创建一些副本节点从事备份或者报告这样的工作。阿里云MongoDB副本集中将hidden节点用来在Secondary节点故障时接替该故障节点成为新的Secondary节点
注意事项
hidden节点必须始终是priority为0,因为hidden节点不能成为primary节点
客户端不会将只读流量发给hidden节点,除了基本复制,这些成员不会收到任何流量
hidden节点可以在副本集选举中投票
配置方法:
在primary节点执行
rs.add({
host: "<从节点IP>:<端口号>",
priority: 0,
hidden: true
})
仲裁节点
仲裁节点是MongoDB副本集中的一个特殊类型的节点,用于解决投票冲突。当主节点失效时,MongoDB副本集需要选举新的主节点。在这个过程中,如果投票出现平局,那么仲裁节点将用于解决冲突。
与hidden从库不同,仲裁节点不参与数据同步或读操作。仲裁节点只用于解决投票冲突,并不存储数据。在配置仲裁节点时,需要将其优先级设置为0,并且将votes
参数设置为1,以确保它只用于投票。
总结
- hidden从库和仲裁节点的作用不同。hidden从库用于数据同步,而仲裁节点用于解决投票冲突。
- 在配置hidden从库时,需要将其优先级设置为0以确保它不会被用于读操作。
- 在配置仲裁节点时,需要将其优先级设置为0,并且将votes参数设置为1,以确保它只用于投票。