Mongodb集群部署

1、背景

创建高可用、高性能、可扩展、易伸缩的Mongodb集群需创建具有3个Shard(1 Primary,1 Secondary,1 Arbiter),3个Config Servers,3个Router。
在这里插入图片描述
在单台服务上搭建,各个端口都不相同:
在这里插入图片描述
如果有多台服务器,可安装下图指定端口,三台情况:
在这里插入图片描述

2、环境搭建

2.1.下载Mongodb最新安装包(我使用的是之前下载的3.2.10的)

如 mongodb-linux-x86_64-rhel62-3.2.10.tgz 到临时目录,
解压:tar -zxv -f mongodb-linux-x86_64-rhel62-3.2.10.tgz -C /home/mongodb
重命名:mv mongodb-linux-x86_64-rhel62-3.2.10 mongodb3.2
修改/etc/profile文件:export /home/mongodb/mongodb3.2/bin,并重新生效 source /ect/profile

2.2.创建数据文件

mkdir -p /data/mongodb/27011 /data/mongodb/27021/data/mongodb/27031

进入mongodb安装目录创建配置文件目录:mkdir clusting

2.3.创建shard文件配置

vi clusting/27011.conf
port=27011
bind_ip=192.168.190.128
logpath=/data/mongodb/27011/l.log
logappend=true
pidfilepath=/data/mongodb/27011/l.pid
dbpath=/data/mongodb/27011
replSet=rs001
fork=true

创建27021.conf 27031.conf文件,与上面内容相同,只需要修改有配置的位置。

2.4.启动服务

mongod -f clusting/27011.conf,同时启动27021,27031端口数据服务。

2.5.执行

mongo --port 27011 --host 192.168.190.128 登录mongo服务编写配置,并初始化配置:

cfg={ _id:"rs001", members:[ {_id:0,host:'192.168.190.128:27011',priority:2}, {_id:1,host:'192.168.190.128:27021',priority:1},{_id:2,host:'192.168.190.128:27031',arbiterOnly:true}] };
rs.initiate(cfg)

执行rs.status(); 查看状态。如果出现error,执行:rs.slaveOk()

2.6.穿件其它节点

重复(2)(3)(4)(5)步骤,创建shard2、shard3,注意需要将replSet、_id设置为相应的rs002、rs003。至此,数据接口创建完成。

2.7.创建confing server数据目录

mkdir /data/mongodb/27014 /data/mongodb/27024 /data/mongodb/27034

2.8.配置confing server节点

vi clusting/27014.conf如下:

port=27014
bind_ip=192.168.190.128
logpath=/data/mongodb/27014/l.log
logappend=true
pidfilepath=/data/mongodb/27014/l.pid
dbpath=/data/mongodb/27014
replSet=configReplSet
fork=true
configsvr=true

创建27024.conf、27034.conf配置服务文件,内容一致,修改指定位置。

2.9.启动配置服务

mongod -f clusting/27014.conf,同时启动27024、27034配置服务。

2.10.执行登录

mongo --port 27014 --host 192.168.190.128 登录mongo服务
在mongo中执行
rs.initiate( {_id: "configReplSet",configsvr: true,members: [{ _id: 0, host: "192.168.190.128:27014"},{ _id: 1, host: "192.168.190.128:27024"},{ _id: 2, host: "192.168.190.128:27034"}]} )
至此,mongodb的config server配置成功。

2.11.创建Router

mkdir /data/mongodb/27015 /data/mongodb/27025 /data/mongodb/27035

2.12.编写Router配置

vi clusting/27015.conf:
port=27015
logpath=/data/mongodb/27015/l.log
pidfilepath=/data/mongodb/27015/l.pid
configdb=configReplSet/192.168.190.128:27014,192.168.190.128:27024,192.168.190.128:27034
fork=true

创建27025.conf、27035.conf的Router配置服务。

2.13.启动27015 Router服务

mongos -f clusting/27015.conf,同时启动27025、27035服务。

2.14.登录Routers服务

mongo --port 27015 --host 192.168.190.128

2.15.在Router服务中添加分片信息,顺序执行

sh.addShard("rs001/192.168.190.128:27011,192.168.190.128:27021,192.168.190.128:27031")
sh.addShard("rs002/192.168.190.128:27012,192.168.190.128:27022,192.168.190.128:27032")
sh.addShard("rs003/192.168.190.128:27013,192.168.190.128:27023,192.168.190.128:27033")

如果出现错误,请排查/etc/hosts或其他问题。
执行: sh.enableSharding("transport") 对数据库transport进行分片操作。
执行: sh.shardCollection( "transport.kuaixin", {"_id": "hashed" } ) ,对业务1collection的分配规则
执行: sh.shardCollection( "transport.lixin", {"_id": "hashed" } ) ,对业务2collection的分配规则。
至此,Mongodb集群搭建完成。
执行sh.status()查看搭建状态,其中是没有显示出Arbiter节点,因为这个节点只用于投票,不存储副本数据。
**

注意:推荐使用3台服务器以上搭建。

**

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值