MongoDB集群配置详解:构建高可用性的数据库系统(mongodb的集群配置)

MongoDB集群配置详解:构建高可用性的数据库系统

MongoDB是当前最具竞争力的特定NoSQL类型数据库。 这种数据库提供了一些大型网站所需的高可用性功能,这些功能在低成本节点上提供卓越的性能。为了实现幂等性、恢复能力以及容错性,MongoDB在多个节点之间提供复制实例。MongoDB 集群可以构建一个可扩展的高可用性系统,其能够支持增量扩展,无缝地实现水平扩展,以及提供层次结构的数据分片和本地索引来提高查询性能。本文将介绍MongoDB集群配置原理并详细解释,以构建高可用性的数据库系统。

MongoDB集群的最基本配置要求包括两个以上节点,每个节点具有三种用途的实例:主副本、从属节点和选举节点。主节点存储所有更新的数据副本,从属节点存储备份的数据,而选举节点存储数据的副本,并充当可用性监控工具。主节点负责检测发送消息,从节点确保备份数据和服务负载均衡。 一旦检测到主节点故障,投票机制就会启动,另一个从节点会被选为新的主节点,从而完成故障转移。

在MongoDB集群配置中,集群中所有节点都是同等重要的,并且充当不同的角色来支持集群的可用性。每个节点可以在集群中主从切换,它们都可以接收请求,允许任何节点在读和写查询中发挥重要作用。 每个MongoDB节点可以部署(混合ShardedRepl Sets)和(Repl Sets),允许节点间的混合模式和复制模式。

除了主从复制,MongoDB 3.2还支持数据分片,也称为Sharding。 数据分片适用于横向伸缩,可以显着改善性能,是处理海量数据的理想方案。它支持分布式读/写,并允许数据跨越多个节点来扩展存储容量,从而提高可伸缩性和可用性。

最后,MongoDB提供了一个用于监控和管理集群的可视化工具,即Ops Manager。 它可用于监控MongoDB实例,从而预防节点故障或过载等错误,并记录节点每一次状态更改。

为了实现MongoDB集群配置,我们可以使用以下代码:

// Connect to a MongoDB Server running on ‘localhost’

MongoClient.connect(‘mongodb://localhost:27017’, { useNewUrlParser : true}, (err, client) =>{

// Create a Replica Set

const rSet = client.createReplicaSet(‘myRset’,{

members [{

host: ‘host1:27017’,

priority : 1

}, {

host : ‘host2:27017’,

priority : 0

}, {

host : ‘host3:27017’,

priority : 0

}]

})

// Once the Replica Set is Setup, assign it a unique id

const replicaSetId = rSet.replicaSetId;

// Configure the settings

rSet.configure( {

readPreference : “primary”

}, (err, db) => {

// Insert Documents Into the Database

db.collection(‘users’).insert([{

name : ‘Adam’,

age : 25

}, {

name : ‘Bob’,

age : 20

}], (err, result) => {

console.log(‘Documents Inserted’,result);

})

})

});


数据运维技术 » MongoDB集群配置详解:构建高可用性的数据库系统(mongodb的集群配置)