锋云ktv服务器MongoDB集群搭建及使用

阿里云服务器架设sf 作者:doremi mongodb的集群搭建方式主要有三种,主从模式,Replicaset模式,sharding模式,三种模式各有优劣,适用于不同的场合,属Replicaset应用最为···

阿里云服务器架设sf

作者:doremi

mongodb的集群搭建方式主要有三种,主从模式,Replicaset模式,sharding模式,三种模式各有优劣,适用于不同的场合,属Replicaset应用最为广泛,主从模式现在用的较少,sharding模式最为完备,但配置维护较为复杂。本文我们来看下ReplicaSet模式的搭建方法。

Mongodb的ReplicaSet即副本集方式主要有两个目的,一个是数据冗余做故障恢复使用,当发生硬件故障或者其它原因造成的宕机时,可以使用副本进行恢复。另一个是做读写分离,读的请求分流到副本上,减轻主(Primary)的读压力。

ReplicaSet是mongod的实例集合,它们有着同样的数据内容。包含三类角色:1)主节点(Primary接收所有的写请求,然后把修改同步到所有Secondary。一个ReplicaSet只能有一个Primary节点,当Primary挂掉后,其他Secondary或者Arbiter节点会重新选举出来一个主节点。默认读请求也是发到Primary节点处理的,需要转发到Secondary需要客户端修改一下连接配置。

2)副本节点(Secondary与主节点保持同样的数据集。当主节点挂掉的时候,参与选主。

3)仲裁者(Arbiter不保有数据,不参与选主,只进行选主投票。使用Arbiter可以减轻数据存储的硬件需求,Arbiter跑起来几乎没什么大的硬件资源需求,但重要的一点是,在生产环境下它和其他数据节点不要部署在同一台机器上。注意,一个自动failover的ReplicaSet节点数必须为奇数,目的是选主投票的时候要有一个大多数才能进行选主决策。

4)选主过程其中Secondary宕机,不受影响,若Primary宕机,会进行重新选主:

使用Arbiter搭建ReplicaSet偶数个数据节点,加一个Arbiter构成的ReplicaSet方式:

搭建集群

云服务器分割虚拟主机

在/opt下解压mongodb

tar-zxvf mongodb-linux-x86_64-ubuntu1404-3.2.4

创建数据目录

mkdir-p data/mongodb/{master,slave,arbiter}

阿里云服务器流量价格

二、创建配置文件主节点:vi/etc/mongodb_master.conf

master.confdbpath=/opt/data/mongodb/masterlogpath=/opt/mongodb/master.logpidfilepath=/opt/mongodb/master.pidkeyFile=/opt/mongodb/mongodb.keydirectoryperdb=truelogappend=truereplSet=testdbbind_ip=192.168.255.141port=27017auth=trueoplogSize=100fork=truenoprealloc=truemaxConns=4000

备份节点:vi/etc/mongodb_slave.conf

slave.confdbpath=/opt/data/mongodb/slavelogpath=/opt/mongodb/slave.logpidfilepath=/opt/mongodb/slave.pidkeyFile=/opt/mongodb/mongodb.keydirectoryperdb=truelogappend=truereplSet=testdbbind_ip=192.168.255.142port=27017auth=trueoplogSize=100fork=truenoprealloc=truemaxConns=4000

仲裁点:vi/etc/mongodb_arbiter.conf

arbiter.confdbpath=/opt/data/mongodb/arbiterlogpath=/opt/mongodb/arbiter.logpidfilepath=/opt/mongodb/arbiter.pidkeyFile=/opt/mongodb/mongodb.keydirectoryperdb=truelogappend=truereplSet=testdbbind_ip=192.168.255.142port=27019auth=trueoplogSize=100fork=truenoprealloc=truemaxConns=4000

备注:keyFile和auth选项要在集群配置好后,并且添加了验证用户后在启用参数说明:dbpath:存放数据目录logpath:日志数据目录pidfilepath:pid文件keyFile:节点之间用于验证文件,内容必须保持一致,权限600,仅ReplicaSet 模式有效directoryperdb:数据库是否分目录存放logappend:日志追加方式存放replSet:ReplicaSet的名字bind_ip:mongodb绑定的ip地址port:端口auth:是否开启验证oplogSize:设置oplog的大小(MB)fork:守护进程运行,创建进程moprealloc:是否禁用数据文件预分配(往往影响性能)maxConns:最大连接数,默认2000三、启动mongodb

/opt/mongodb/bin/mongod-f /etc/mongodb_master.conf/opt/mongodb/bin/mongod-f /etc/mongodb_slave.conf/opt/mongodb/bin/mongod-f /etc/mongodb_arbiter.conf

四、在主节点进行配置连接mongoDB配置集群

cfg={_id:"testdb", members:[{_id:0,host:192.168.255.141:27017,priority:2},{_id:1,host:192.168.255.142:27017,priority:1},{_id:2,host:192.168.255.142:27019,arbiterOnly:true}]};rs.initiate(cfg)

说明:cfg名字可选,只要跟mongodb参数不冲突,_id为ReplicaSet名字,members里面的优先级priority值高的为主节点,对于仲裁点一定要加上arbiterOnly:true,否则主备模式不生效priority表示优先级别,数值越大,表示是主节点arbiterOnly:true表示仲裁节点使集群cfg配置生效rs.initiate(cfg)查看是否生效rs.status()"stateStr": "PRIMARY"表示主节点,"stateStr" : "SECONDARY"表示从节点,"stateStr" :"ARBITER",表示仲裁节点添加节点命令添加secondary:rs.add({host:"192.168.255.141:27019", priority: 1})添加仲裁点:rs.addArb("192.168.255.142:27019")移除节点:rs.remove({host:"192.168.255.141:27019"})在iServer中配置使用MongoDB集群在分布式切图选项中添加MongoDB存储位置添加之后,开始切图,就可以在mongoDB中看到瓦片已经存储在各个节点中了发布瓦片服务,浏览地图

视频云服务器租用

您好:云优数据云计算 www.yunyoushuju.cn 2核2G6M最低19.9元/月 欢迎开机

发表评论

评论列表
未查询到任何数据!