最近项目会用到mongodb的oplog触发业务流程,开发时的debug很不方便。所以在本地创建一个单台mongodb 集群进行开发debug。

大概:mongodb可以产生oplog的部署方式应该是两种,一种是replica set ,一种是shard;项目中使用的的shard,所以参照文档本地部署了单节点shard集群-只为debug。

根据文档整理的内容包含三部分:

1.配置文件

配置文件有三个,分别是config.conf,shard.conf,mongos.conf;一下是内容

 #config.conf
sharding:
clusterRole: configsvr
replication:
replSetName: config
net:
bindIp: 127.0.0.1
port: 27017
storage:
dbPath: D:\mongo\data\db
systemLog:
destination: file
path: D:\mongo\log\config.log
logAppend: true
processManagement:
pidFilePath: D:\mongo\log\config.pid
#shard.conf
sharding:
clusterRole: shardsvr
replication:
replSetName: shard1
net:
bindIp: 127.0.0.1
port: 20001
storage:
dbPath: D:\mongo\shard\db
systemLog:
destination: file
logAppend: false
path: D:\mongo\log\shard1.log
processManagement:
pidFilePath: D:\mongo\log\shard1.pid
#mongos.conf
net:
bindIp: 127.0.0.1
port: 30000
systemLog:
destination: file
logAppend: false
path: D:\mongo\log\mongos.log
processManagement:
pidFilePath: D:\mongo\log\mongos.pid sharding:
configDB: config/127.0.0.1:27017

2.启动文件,启动文件是一个.bat文件,只是config,shard和mongos服务的启动。注意配置文件的位置

start mongod --config C:\Users\docker-mongo\conf\config.conf
start mongod --config C:\Users\docker-mongo\conf\shard.conf
start mongos --config C:\Users\docker-mongo\conf\mongos.conf

3.初始化语句,初始化语句需要分别在控制台中运行。

//config
mongo --host 127.0.0.1 --port 27017
rs.initiate(
{
_id: "config",
configsvr: true,
members: [
{ _id : 0, host : "127.0.0.1:27017" }
]
}
) //shard
mongo --host 127.0.0.1 --port 20001
rs.initiate(
{
_id : "shard1",
members: [
{ _id : 0, host : "127.0.0.1:20001" }
]
}
) //mongos
mongo --host 127.0.0.1 --port 30000
sh.addShard( "shard1/127.0.0.1:20001")

到这里就完成了。连接mongos后可以使用了。

05-07 15:36