mongodb 集群linux,Linux下MongoDB集群--副本集环境搭建

mongoDB 副本集适合写比较少,读较多的场景,写可以使用消息队列来进行控制,这样可以减少高并发写带来的压力。副本集的使用场景要根据自己的项目需求来选择,要是有着高并发的写需求,建议采用分片的方式搭建集群,在稳定性方面要比副本集要高。我这里的使用场景是将写入操作用队列控制,主要是查询多。

副本集中的副本节点在主节点挂掉后通过心跳机制检测到后,就会在集群内发起主节点的选举机制,自动选举一位新的主服务器。

主节点故障后会实现自动切换,节点数量一定要大于等于3,否则可能会出现选主错误。官方建议为奇数节点,我这里使用3个节点。

在各个节点上分别安装mongoDB

mkdir /data/mongo/replset

#存放mongodb数据文件

mkdir -p /data/mongo/replset/data

#进入mongodb文件夹

cd  /data/mongo

下载到部署包

wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.12.tar

tar xzvf mongodb-linux-x86_64-2.4.12.tar

接下来在各个机器上启动,命令如下:

/data/mongo/mongodb-linux-x86_64-2.4.12/bin/mongod  --fork  --dbpath /data/mongo/replset/data  --logpath=/data/mongo/logs/logs.info  --replSet repset

注意:是后台启动,要加上fork

在三台机器上任意一台机器登陆mongodb

/data/mongo/mongodb-linux-x86_64-2.4.12/bin/mongo

use admin

定义副本集配置变量

config = { _id:"repset",

members:[

{_id:0,host:"x.x.x.8:27017"},

{_id:1,host:"x.x.x.9:27017"},

{_id:2,host:"x.x.x.10:27017"}

]}

配置成功后入如图

5247dd7b957ad427d071721468bc96cf.png

初始化副本集

rs.initiate(config);

74522ee4be990d9cdd608ed5596cb853.png

查看集群节点的状态

rs.status();

d149d6466e1e319623ed2984cca972eb.png

测试副本集是否同步

在主节点上登陆

/data/mongo/mongodb-linux-x86_64-2.4.12/bin/mongo  127.0.0.1或者本机节点IP

建立测试数据库

use test;

dd9e7d581379c8c6dbe1acd4ada93444.png

db.testdb.insert({"demo":"demo"})

再到其他副本机器上查看,数据已经同步。

df7516635c6d130f8a83927fa5a2dd3b.png

可以停掉主节点,然后看看自动选主的效果。

《MongoDB 权威指南》(MongoDB: The Definitive Guide)英文文字版[PDF] http://www.linuxidc.com/Linux/2012-07/66735.htm

MongoDB 的详细介绍:请点这里

MongoDB 的下载地址:请点这里

0b1331709591d260c1c78e86d0c51c18.png