MongoDB分布式集群架构(4)

五、集群模式mongos,mongod,configsvr

1.Shard分片-- 第一组分片  192.168.200.226:     /data/mongodb/bin/mongod --replSet rep1 --fork --port 11813 --maxConns 65535 --dbpath /data/mongodb/data --directoryperdb --logpath /data/mongodb/log/db.log --logappend --nohttpinterface #启动rep1分片的一个数据节点/data/mongodb/bin/mongos --configdb 192.168.201.226:11812 --port 11811 --fork --chunkSize 256 --logpath /data/mongodb/log/ms.log  #启动路由节点,读取201.226上的配置节点的配置文件,(在配置节点启动后启动)/data/mongodb/bin/mongod --replSet rep1 --fork --port 11814 --dbpath /data/mongodb/arbiter --directoryperdb --logpath /data/mongodb/log/arbiter.log --logappend --nohttpinterface #启动分片的仲裁节点  192.168.201.226:     /data/mongodb/bin/mongod --replSet rep1 --fork --port 11813 --maxConns 65535 --dbpath /data/mongodb/data --directoryperdb --logpath /data/mongodb/log/db.log --logappend --nohttpinterface #启动rep1分片的第二个数据节点/data/mongodb/bin/mongos --configdb 192.168.201.226:11812 --port 11811 --fork --chunkSize 256 --logpath /data/mongodb/log/ms.log  #启动第二个路由节点 (在配置节点启动后启动)  2.ConfigServer---     #启动config server      192.168.201.226:             /data/mongodb/bin/mongod --configsvr --dbpath /data/mongodb/config --port 11812 --fork --logpath /data/mongodb/log/mc.log    #启动配置节点,注意配置节点应该优先启动,不然路由节点读取不到配置节点信息则会启动失败。3.Mongos路由---     #启动mongos,指定config server, chunkSize 256M     192.168.201.226:         /data/mongodb/bin/mongos --configdb 192.168.201.226:11812 --port 11811 --fork --chunkSize 256 --logpath /data/mongodb/log/ms.log #启动路由节点

由于机器有限,只配置了一个shard分片,该分片里有2个节点,新增加分片只需对应改replSet 名称即可。

4.配置replSet: 连接任一mongod members  mongo 192.168.201.226:11813 config = {_id: 'rep1', members: [ {_id: 0, host: '192.168.200.226:11813', priority: 2},                     #priority 为定义优先级,默认为1,高优先级会被认为是主节点优先启用。 {_id: 1, host: '192.168.201.226:11813'}, {_id: 2, host: '192.168.200.226:11814', arbiterOnly: true}]     rs.initiate(config);     rs.status()  5.连接mongos增加shard 80G      mongo 192.168.201.226:11811/admin     show dbs     use admin     db.runCommand({addshard:'rep1/192.168.201.226:11813,192.168.200.226:11813',maxsize:81920})     db.runCommand({listshards:1})  6.连接mongos增加创建test库和c1集合,并测试      mongo 192.168.201.226:11811/admin     db.runCommand({enablesharding:'test'})     printShardingStatus()     db.runCommand({shardcollection:'test.auto_increment_id', key:{_id:1}, unique : true})     db.runCommand({shardcollection:'test.c1', key:{_id:1}, unique : true})     for (var i = 1; i <= 100; i++)db.c1.save({id:i,value1:"1234567890",value2:"1234567890",value3:"1234567890",value4:"1234567890"})     db.c1.stats()   db.createCollection("cap_coll", {capped:true, size:100000, max:100}); db.mycoll.validate();  7.检查: db.printCollectionStats() 8.管理: mongo 127.0.0.1:11811show dbsuse adminshow collectionsdb.serverStatus()db.shutdownServer()exit 9.索引: db.product_data.ensureIndex({data_id: 1}, {unique: true,dropDups: true}); #创建索引   db.product_data.dropIndexes();  #删除索引

 至此,mongodb的分布式架构就架起来了,并且通过测试和log的分析,可看服务是否正常,下面就需要php客户端的支持,和程序的运行,之后加到监控里,就可以在线上部署使用了。  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/69f7bc429e76a43222d3577dfcd26516.html