MongoDB中仲裁节点的重要作用(mongodb仲裁节点)
MongoDB中仲裁节点起着非常重要的作用,又称作voter节点。它类似于复制集中所有节点都知道咋干的超级节点。在这个特殊的节点中存储的是复制集的元数据,用来监控和跟踪所有成员的运行情况,其中就包括了成员的部署位置、状态和姿态。当有成员加入或者退出时,该节点会立刻感知并及时更新成员的状态,这使得整个复制集可以正常工作。
与其他节点相比,仲裁节点并不参与任何数据复制操作,它只是管理复制集中所有成员,像一个可靠的监视者。由于MongoDB中每个节点均有一定的延迟问题,因此在复制集状态更改时,如果有任何节点延迟,或者有成员丢失、新成员加入的情况,仲裁节点就可以投票以决定把所有成员状态更改为一致的。
如今,仲裁节点也被称为可用性架构节点,它也时常被添加到复制集中,因为它能够改善复制集的可用性。它主要改进了复制集在主节点失效时的服务器可用性,减少了服务缺失时间,并可以在节点丢失时投票使服务继续运行。最重要的是,增加仲裁节点在不经过完整恢复的情况下可以恢复复制集的运行状态,从而更好的保证数据库的可用性。
在操作仲裁节点时,建议使用以下shell命令来添加仲裁节点:
rs.addArb("hostname", port)
此外,仲裁节点在mongo3.4也可以使用rs.initiate()方法来构建:
var config={
_id: "aname", members: [
{*host: "host1name", priority: 0, votes:1, arbiterOnly: true*, *}, {host: "host2name", priority: 0, votes:1},
{host: "host3name", priority: 0, votes:1} ]
}rs.initiate(config)
总的来说,MongoDB中的仲裁节点在保障数据库的可用性和可靠性方面发挥着很大的作用,是数据库复制集的重要构成部分。如果在构建复制集的时候没有添加仲裁节点,在数据库出现问题时,将无法及时恢复原始状态,影响数据库的正常使用。