您的位置:首页 > 数据库 > Mongodb

Mongodb 副本集-集群搭建方式--Sharding

2017-04-07 16:39 423 查看
Sharding
和Replica Set类似,都需要一个仲裁节点,但是Sharding还需要配置节点和路由节点。就三种集群搭建方式来说,这种是最复杂的。部署图如下:
  

  
1.启动数据节点
[root@localhost ~]#/usr/bin/mongod --fork --dbpath ../data/master/ --logpath ../log/master.log --replSet mong //machine4 IP:192.168.1.106
[root@localhost ~]#/usr/bin/mongod --fork --dbpath ../data/slave/ --logpath ../log/slave.log --replSet mong //machine5 IP:192.168.1.107
[root@localhost ~]#/usr/bin/mongod --fork --dbpath ../data/arbiter/ --logpath ../log/arbiter.log --replSet mong //machine6 IP:192.168.1.108

2.启动配置节点
[root@localhost ~]#/usr/bin/mongod --configsvr --dbpath ../config/cont1/ --port 20001 --fork --logpath ../log/conf1.log //machine2 IP:192.168.1.104
[root@localhost ~]#/usr/bin/mongod --configsvr --dbpath ../config/cont2/ --port 20002 --fork --logpath ../log/conf2.log //machine3 IP:192.168.1.105

3.启动路由节点
[root@localhost ~]#/usr/bin/mongos --configdb 192.168.1.104:20001,192.168.1.105:20002 --port 27017 --fork --logpath ../log/root.log //machine1 IP:192.168.1.103
一般来说一个数据节点对应一个配置节点,仲裁节点则不需要对应的配置节点。注意在启动路由节点时,要将配置节点地址写入到启动命令里。

4.配置Replica Set
这里可能会有点奇怪为什么Sharding会需要配置Replica Set。其实想想也能明白,多个节点的数据肯定是相关联的,如果不配一个Replica Set,怎么标识是同一个集群的呢。
[root@localhost ~]#/usr/bin/mongo 192.168.1.106:27017 #ip和port是某个节点的地址
>use admin
>cfg={ _id:"mong", members:[ {_id:0,host:'192.168.1.106:27017',priority:2}, {_id:1,host:'192.168.1.107:27017',priority:1},
{_id:2,host:'192.168.1.108:27017',arbiterOnly:true}] };
>rs.initiate(cfg) #使配置生效

5.配置Sharding
[root@localhost ~]#/usr/bin/mongo 192.168.1.103:27017 #这里必须连接路由节点
>sh.addShard("test/192.168.1.103:27017")         #test表示replica set的名字 当把主节点添加到shard以后,会自动找到set里的主,备,决策节点
>db.runCommand({enableSharding:"diameter_test"})   #diameter_test is database name
>db.runCommand( { shardCollection: "diameter_test.dcca_dccr_test",key:{"__avpSessionId":1}})
第一个命令很容易理解,第二个命令是对需要进行Sharding的数据库进行配置,第三个命令是对需要进行Sharding的Collection进行配置,这里的dcca_dccr_test即为Collection的名字。另外还有个key,这个是比较关键的东西,对于查询效率会有很大的影响,具体可以查看Shard Key Overview
到这里Sharding也已经搭建完成了,以上只是最简单的搭建方式,其中某些配置仍然使用的是默认配置。如果设置不当,会导致效率异常低下,所以建议大家多看看官方文档再进行默认配置的修改。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: