开发者社区> leo1992> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

mongodb集群方式-分片+副本集方式

简介: 分片就是水平的扩展,将数据分拆到不同的机器上,以达到存储更多的数据,处理更大的负载。可以选定将按照指定的文档键值进行分片。 配置 整体部署方案: 启动三个分片服务,两个做数据存储,另一个作为config, 配置分片的副本集,创建管理员用户,关闭mongod,打开keyfile,启动mongos,配置分片服务。
+关注继续查看

 

分片就是水平的扩展,将数据分拆到不同的机器上,以达到存储更多的数据,处理更大的负载。可以选定将按照指定的文档键值进行分片。

配置

整体部署方案:

启动三个分片服务,两个做数据存储,另一个作为config,

配置分片的副本集,创建管理员用户,关闭mongod,打开keyfile,启动mongos,配置分片服务。

角色

分片一般有三个组成部分:

分片服务(Shard Server),mongod 实例,2个以上,负责存储实际的数据分片,生产环境中一个Shard Server可由几台服务器组成一个Replica Set代替,避免主机单点故障;
路由服务(Routing Process),mongos实例,1个以上,它负责管理分片,客户端由此前端路由接入,且让整个集群看起来像单一数据库,客户端应用可以透明使用,Routing Process不存储数据,数据来自Config Server;

配置服务(Config Server),mongod 实例,1个以上,负责存储整个集群的配置信息:即数据和片的对应关系。

 

因为测试资源有限, 采取三台虚拟机的方式,

 

分片的架构图如下:

192.168.100.101所有配置如下:

############config-1############
configsvr = true
replSet = config
port = 30001
dbpath = /opt/mongo/data/config-1
logpath = /opt/mongo/logs/config-1.log
logappend = true
fork = true
profile = 1
slowms = 500
keyFile = /opt/mongo/config/keyfile
maxConns=20000
storageEngine = wiredTiger
############route############
configdb = config/192.168.100.101:30001,192.168.100.102:30002,192.168.100.103:30003
port = 20000
logpath = /opt/mongo/logs/route.log
logappend = true
fork = true
#chunkSize = 256
keyFile = /opt/mongo/config/keyfile
maxConns=20000
############rs1-1############
port = 10001
fork = true
dbpath = /opt/mongo/data/rs1-1
logpath = /opt/mongo/logs/rs1-1.log
replSet = test1
logappend = true
profile = 1
slowms = 500
directoryperdb = true
keyFile = /opt/mongo/config/keyfile
maxConns=20000
storageEngine = wiredTiger
############rs2-a############
port = 20003
fork = true
dbpath = /opt/mongo/data/rs2-a
logpath = /opt/mongo/logs/rs2-a.log
replSet = test2
logappend = true
profile = 1
slowms = 500
directoryperdb = true
keyFile = /opt/mongo/config/keyfile
maxConns=20000
storageEngine = wiredTiger

192.168.100.102所有配置如下:

############config-2############
configsvr = true
replSet = config
port = 30002
dbpath = /opt/mongo/data/config-2
logpath = /opt/mongo/logs/config-2.log
logappend = true
fork = true
profile = 1
slowms = 500
keyFile = /opt/mongo/config/keyfile
maxConns=20000
storageEngine = wiredTiger
############route############
configdb = config/192.168.100.101:30001,192.168.100.102:30002,192.168.100.103:30003
port = 20000
logpath = /opt/mongo/logs/route.log
logappend = true
fork = true
#chunkSize = 256
keyFile = /opt/mongo/config/keyfile
maxConns=20000
############rs1-2############
port = 10002
fork = true
dbpath = /opt/mongo/data/rs1-2
logpath = /opt/mongo/logs/rs1-2.log
replSet = test1
logappend = true
profile = 1
slowms = 500
directoryperdb = true
keyFile = /opt/mongo/config/keyfile
maxConns=20000
storageEngine = wiredTiger
############rs2-2############
port = 20002
fork = true
dbpath = /opt/mongo/data/rs2-2
logpath = /opt/mongo/logs/rs2-2.log
replSet = test2
logappend = true
profile = 1
slowms = 500
directoryperdb = true
keyFile = /opt/mongo/config/keyfile
maxConns=20000
storageEngine = wiredTiger

192.168.100.103所有配置如下:

############config-3############
configsvr = true
replSet = config
port = 30003
dbpath = /opt/mongo/data/config-3
logpath = /opt/mongo/logs/config-3.log
logappend = true
fork = true
profile = 1
slowms = 500
keyFile = /opt/mongo/config/keyfile
maxConns=20000
storageEngine = wiredTiger
############route############
configdb = config/192.168.100.101:30001,192.168.100.102:30002,192.168.100.103:30003
port = 20000
logpath = /opt/mongo/logs/route.log
logappend = true
fork = true
#chunkSize = 256
keyFile = /opt/mongo/config/keyfile
maxConns=20000
############rs1-a############
port = 10003
fork = true
dbpath = /opt/mongo/data/rs1-a
logpath = /opt/mongo/logs/rs1-a.log
replSet = test1
logappend = true
profile = 1
slowms = 500
directoryperdb = true
keyFile = /opt/mongo/config/keyfile
maxConns=20000
storageEngine = wiredTiger
############rs2-1############
port = 20001
fork = true
dbpath = /opt/mongo/data/rs2-1
logpath = /opt/mongo/logs/rs2-1.log
replSet = test2
logappend = true
profile = 1
slowms = 500
directoryperdb = true
keyFile = /opt/mongo/config/keyfile
maxConns=20000
storageEngine = wiredTiger

 

openfile 可以使用命令生成:

openssl rand -base64 500 > keyfile
chmod 400 keyfile

确保每台机器的keyfile一致

 

依次按照上面配置文件的内容创建配置文件和存储目录日志目录

创建完成依次启动所有的mongod节点

注意此时要把keyfile选项注释掉,否则启动之后未创建角色就要认证,无法进入操作

ls |grep -v keyfile| xargs sed -i "s/^keyFile/#keyFile/g"

启动之后依次连接每个分片的主执行以下操作:

>config = {
    _id: "test1",
    members: [{
        _id: 0,
        host: "192.168.100.101:10001"
    }, {
        _id: 1,
        host: "192.168.100.102:10002"
    }, {
        _id: 2,
        host: "192.168.100.103:10003",
        arbiterOnly: true
    }]
}
>rs.initiate(config)
>rs.status()
>db.isMaster( )
>use admin;
>db.createRole({role:"superman", privileges:[{resource:{anyResource: true}, actions:["anyAction"]}], roles:["root"]})
>db.createUser({user:"test",pwd:"test",roles:[{role:"superman", db:"admin"}]})

依次执行成功之后,

停止所有的mongod节点:

for i in `seq 10`;do killall mongod ;done

开启keyfile

ls |grep -v keyfile| xargs sed -i "s/^#keyFile/keyFile/g"

之后依次启动mongod节点

 

然后启动mongos节点

连接mongos节点

mongos>use admin;
mongos>db.auth("test","test")
mongos>sh.addShard("test1/192.168.100.101:10001")
mongos>sh.addShard("test2/192.168.100.103:20001")
mongos>sh.status()

至此分片配置完成。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
玩转MongoDB—搭建MongoDB集群
玩转MongoDB—搭建MongoDB集群
0 0
MongoDB部署分片集群
MongoDB部署分片集群
0 0
部署MongoDB复制集群(最全)
部署MongoDB复制集群(最全)
0 0
MongoDB集群安装
MongoDB集群安装
0 0
《阿里云数据库 MongoDB 专属集群版》电子版地址
《阿里云数据库 MongoDB 专属集群版》PPT
0 0
高可用mongodb集群(分片+副本):规划及部署
高可用mongodb集群(分片+副本):规划及部署
0 0
高可用mongodb集群(分片+副本):用户权限配置
高可用mongodb集群(分片+副本):用户权限配置
0 0
高可用mongodb集群(分片+副本):性能测试
高可用mongodb集群(分片+副本):性能测试
0 0
高可用mongodb集群(分片+副本):shard2副本重建
高可用mongodb集群(分片+副本):shard2副本重建
0 0
玩转MongoDB—搭建MongoDB集群
如题,本次玩转MongoDB我们从搭建集群开始,话说MongoDB一共有三种搭建集群的方式,但是由于版本更新,据说在4.0版本之后第一种方式,也就是主从复制的方式被遗弃掉了,大概是因为这种方式的效率不高吧,因为目前我们使用的是5.x版本,因此就不花时间讲解第一种方式了,在其他的文章上摘录了一下,可供大家参考。重点还是要放在后两种。
0 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
MongoDB 应用数据平台助力快速构建您的应用
立即下载
MongoDB网络安全和权限管理
立即下载
《阿里云数据库 MongoDB 专属集群版》
立即下载