安装MongoDB
在开始部署MongoDB分片集群之前,需要在每台服务器上安装MongoDB。您可以按照MongoDB官方文档提供的指南来安装MongoDB。这里提供一个简单的步骤:
添加MongoDB软件源
代码语言:javascript复制sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
sudo apt-get update
安装MongoDB
代码语言:javascript复制sudo apt-get install -y mongodb-org
配置MongoDB
在安装MongoDB之后,需要进行一些配置。MongoDB分片集群需要三个配置服务器和至少两个数据分片服务器。以下是配置MongoDB的步骤:
创建数据目录和配置目录
代码语言:javascript复制mkdir -p /data/configdb1
mkdir -p /data/configdb2
mkdir -p /data/configdb3
mkdir -p /data/shard1
mkdir -p /data/shard2
配置分片服务器
在每台数据分片服务器上启动MongoDB实例:
代码语言:javascript复制mongod --shardsvr --replSet shard1 --dbpath /data/shard1 --port 27017 --bind_ip 192.168.1.1
mongod --shardsvr --replSet shard2 --dbpath /data/shard2 --port 27018 --bind_ip 192.168.1.2
在每个数据分片服务器上都需要执行此命令。
接下来,初始化每个副本集并添加成员:
代码语言:javascript复制mongo --port 27017
rs.initiate()
rs.add("192.168.1.1:27017")
rs.add("192.168.1.2:27018")
配置配置服务器
在每个配置服务器上启动MongoDB实例:
代码语言:javascript复制mongod --configsvr --replSet configReplSet --port 27019 --dbpath /data/configdb1 --bind_ip 192.168.1.3
mongod --configsvr --replSet configReplSet --port 27019 --dbpath /data/configdb2 --bind_ip 192.168.1.4
mongod --configsvr --replSet configReplSet --port 27019 --dbpath /data/configdb3 --bind_ip 192.168.1.5
接下来,初始化配置副本集并添加成员:
代码语言:javascript复制mongo --port 27019
rs.initiate()
rs.add("192.168.1.4:27019")
rs.add("192.168.1.5:27019")
配置路由器
在单独的服务器上启动mongos::
代码语言:javascript复制mongos --configdb configReplSet/192.168.1.3:27019,192.168.1.4:27019,192.168.1.5:27019 --port 27020 --bind_ip 192.168.1.6
mongos将运行在192.168.1.6上,该服务器必须可以访问所有数据分片和配置服务器。
配置路由规则
使用mongo shell连接到mongos:
代码语言:javascript复制mongo --port 27020
接下来,添加数据分片:
代码语言:javascript复制sh.addShard("shard1/192.168.1.1:27017,192.168.1.2:27018")
sh.addShard("shard2/192.168.1.1:27017,192.168.1.2:27018")
然后,定义分片键和集合:
代码语言:javascript复制sh.enableSharding("test")
sh.shardCollection("test.users", {"_id": "hashed"})
现在,您已经完成了MongoDB分片集群的配置。您可以尝试使用mongo shell连接到mongos并执行一些基本操作。