mongo配置hidden从库和仲裁节点的区别

460 阅读2分钟

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,以确保它只用于投票。