MongoDB分布式集群实例

4.1集群模式

数据库sharding主要优点:

Ø 提供了接近线性扩张的架构,系统的可扩张性更高。

Ø 提高了数据库的可靠性。如果一个数据库分支当掉,对于整体的服务没有任何影响。

Ø 数据库的抗压性更高,性能更好。3000TPS的数据库和一个300TPS的数据库的压力是完成不一样。

服务器名称

IP

服务和端口

Server A

192.168.1.231

mongod shard1_1:27017

mongod shard1_1:27018

mongod config 1:20000

mongos 1:30000

Server B

192.168.1.232

mongod shard1_1:27017

mongod shard1_1:27018

mongod config 1:20000

mongos 1:30000

Server C

192.168.1.233

mongod shard1_1:27017

mongod shard1_1:27018

mongod config 1:20000

mongos 1:30000

1. Server A、Server B和Server C创建上ShardServer和Config Server的数据目录,脚本如下:

#Server A

mkdir –p /data/shard1_1

mkdir –p /data/shard2_1

mkdir –p /data/config

#Server B

mkdir –p /data/shard1_1

mkdir –p /data/shard2_1

mkdir –p /data/config

#Server C

mkdir –p /data/shard1_1

mkdir –p /data/shard2_1

mkdir –p /data/config

2. 配置Shard所有Replica Set。

配置shard1

Server A上操作,如下代码:

#Server A

/mongod –shardsvr–replSet shard1 –port 27017 –dbpath /data/shard1_1 –logpath/data/shard1_1/shard1_1.log –logappend --fork

#Server B

/mongod –shardsvr–replSet shard1 –port 27017 –dbpath /data/shard1_1 –logpath/data/shard1_1/shard1_2.log –logappend --fork

#Server C

/mongod –shardsvr–replSet shard1 –port 27017 –dbpath /data/shard1_1 –logpath/data/shard1_1/shard1_3.log –logappend --fork

链接其中一台机器的27017端口的mongod,初始化Relica Set 1 , 脚本如下:

./mongo –port 27017

>config = {_id:’shard1’,members:[{_id:0, host: ‘192.168.1.231:27017’},{_id:1,host: ‘192.168.1.232:27017’},{_id:2, host: ‘192.168.1.233:27017’}]}

>rs.initiate(config)

依次类推,配置Shard2,脚本如下:

#Server A

/mongod –shardsvr–replSet shard2 –port 27018 –dbpath /data/shard2_1 –logpath/data/shard1_1/shard2_1.log –logappend --fork

#Server B

/mongod –shardsvr–replSet shard2 –port 27018 –dbpath /data/shard2_2 –logpath/data/shard1_1/shard2_2.log –logappend --fork

#Server C

/mongod –shardsvr–replSet shard2 –port 27018 –dbpath /data/shard2_3 –logpath/data/shard1_1/shard2_3.log –logappend --fork

shard2配置服务

./mongo –port 27018

>config = {_id:’shard1’,members:[{_id:0, host: ‘192.168.1.231:27018’},{_id:1,host: ‘192.168.1.232:27018’},{_id:2, host: ‘192.168.1.233:27018’}]}

>rs.initiate(config)

3.配置3台Config Server

在Server A、Server B和Server C配置configServer,依次执行如下脚本:

./mongod –configsvr–dbpath /data/config –port 20000 –logpath/data/config/config.log –logappend –fork

4.配置3台Route Process

./mongos –configdb 192.168.1.231:20000, 192.168.1.232:20000,

192.168.1.233:20000 –port 30000 --chunkSize 125 –logpath /data/mongos.log –logappend--fork

5. 配置Shard Cluster

连接其中一台服务的端口30000的mongos进程,并切换到admin数据库开始配置Sharding环境,脚本如下:

./mongo –port 30000

>use admin

switched to db admin

>db.runCommand({addshard:”shard1/192.168.1.231:27017,192.168.1.232: 27017,

192.168.1.233: 27017”});

> db.runCommand({addshard:”shard1/192.168.1.231:27018,192.168.1.232: 27018,

192.168.1.233: 27018”});

6.激活分片,脚本如下:

db.runCommand({enablesharding:“test”});

db.runCommand({shardcollection:“test.users”, key:{_id:1}});

7.测试验证

脚本如下:

>use test

>for(var i=1;i< 200000; i++)db.users.insert(id:I, add_1:”北京”,addr_2:”上海”);

查看users表的状态,脚本如下:

>db.users.stats()

…..


这个是选自我的MongoDB培训文档,下载地址:MongoDB Tutorial

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值