mongodb集群配置(sharding with replica set) ,我在一台windows机器下搭建了一个 replica sets + sharding 测试集群环境,以此作
长期以来我就对分布式系统原理与实践非常感兴趣,对于mongodb我一直很好奇,,最近终于有时间能动手实验一把!
我在一台windows机器下搭建了一个 replica sets + sharding 测试集群环境,以此作为我后续对于mongodb更进一步学习的实验平台。
只有一台windows机器,配置方案:
1、3个分片sharding
2、每一个分片由3个节点构成1主2备的replica sets
3、3个配置节点configsever
4、1个路由节点mongos
分片复制集a(三个分片节点构成一个复制集):
127.0.0.1:10000 127.0.0.1:10001 127.0.0.1:10002
分片复制集b(三个分片节点构成一个复制集):
127.0.0.1:20000 127.0.0.1:20001 127.0.0.1:20002
分片复制集c(三个分片节点构成一个复制集):
127.0.0.1:30000 127.0.0.1:30001 127.0.0.1:30002
configsvc(三个配置服务器节点):
127.0.0.1:40000 127.0.0.1:40001 127.0.0.1:4002
mongos(一个路由节点):
127.0.0.1:50000
详细操作步骤如下:
(1)下载mongodb-win32-i386-1.8.0
下载mongodb-win32-i386-1.8.0版本的mongodb,放置在d:/mongodb-win32-i386-1.8.0目录下。
(2)创建数据和日志文件目录
进入d:/mongodb-win32-i386-1.8.0目录下创建如下目录
创建数据文件目录:
data/a/r0
data/a/r1
data/a/r2
data/b/r0
data/b/r1
data/b/r2
data/c/r0
data/c/r1
data/c/r2
data/configsvr/r0
data/configsvr/r1
data/configsvr/r2
创建日志文件目录:
logs/a
logs/b
logs/c
logs/configsvr
(3)创建分片和复制集
配置第一组:
从命令行进入d:/mongodb-win32-i386-1.8.0/bin目录,分别执行如下命令!
mongod.exe --logpath d:/mongodb-win32-i386-1.8.0/logs/a/r0.log --logappend --dbpath d:/mongodb-win32-i386-1.8.0/data/a/r0 --port 10000 --shardsvr --replset seta --rest --oplogsize 64
mongod.exe --logpath d:/mongodb-win32-i386-1.8.0/logs/a/r1.log --logappend --dbpath d:/mongodb-win32-i386-1.8.0/data/a/r1 --port 10001 --shardsvr --replset seta --rest --oplogsize 64
mongod.exe --logpath d:/mongodb-win32-i386-1.8.0/logs/a/r2.log --logappend --dbpath d:/mongodb-win32-i386-1.8.0/data/a/r2 --port 10002 --shardsvr --replset seta --rest --oplogsize 64
启动上述分片节点之后,再使用mongo的命令行来初始化复制集
d:/mongodb-win32-i386-1.8.0/bin>call mongo.exe 127.0.0.1:10000/admin
mongodb shell version: 1.8.0
connecting to: 127.0.0.1:10000/admin
> config={_id: 'seta', members:[{_id: 0,host:'127.0.0.1:10000'},{_id:1,host:'127.0.0.1:10001'},{_id:2,host:'
127.0.0.1:10002'}]}
{
_id : seta,
members : [
{
_id : 0,
host : 127.0.0.1:10000
},
{
_id : 1,
host : 127.0.0.1:10001
},
{
_id : 2,
host : 127.0.0.1:10002
}
]
}
seta> rs.initiate(config);
配置第二组:
从命令行进入d:/mongodb-win32-i386-1.8.0/bin目录,分别执行如下命令!
mongod.exe --logpath d:/mongodb-win32-i386-1.8.0/logs/b/r0.log --logappend --dbpath d:/mongodb-win32-i386-1.8.0/data/b/r0 --port 20000 --shardsvr --replset setb --rest --oplogsize 64
mongod.exe --logpath d:/mongodb-win32-i386-1.8.0/logs/b/r1.log --logappend --dbpath d:/mongodb-win32-i386-1.8.0/data/b/r1 --port 20001 --shardsvr --replset setb --rest --oplogsize 64
mongod.exe --logpath d:/mongodb-win32-i386-1.8.0/logs/b/r2.log --logappend --dbpath d:/mongodb-win32-i386-1.8.0/data/b/r2 --port 20002 --shardsvr --replset setb --rest --oplogsize 64
启动上述分片节点之后,再使用mongo的命令行来初始化复制集
d:/mongodb-win32-i386-1.8.0/bin>call mongo.exe 127.0.0.1:20000/admin
mongodb shell version: 1.8.0
connecting to: 127.0.0.1:20000/admin
> config={_id: 'setb', members:[{_id: 0,host:'127.0.0.1:20000'},{_id:1,host:'127.0.0.1:20001'},{_id:2,host:'
127.0.0.1:20002'}]}
{
_id : setb,
members : [
{
_id : 0,
host : 127.0.0.1:20000
},
{
_id : 1,
host : 127.0.0.1:20001
},
{
_id : 2,
host : 127.0.0.1:20002
}
]
}
> rs.initiate(config);