最近项目会用到mongodb的oplog触发业务流程,开发时的debug很不方便。所以在本地创建一个单台mongodb 集群进行开发debug。
大概:mongodb可以产生oplog的部署方式应该是两种,一种是replica set ,一种是shard;项目中使用的的shard,所以参照文档本地部署了单节点shard集群-只为debug。
根据文档整理的内容包含三部分:
1.配置文件
配置文件有三个,分别是config.conf,shard.conf,mongos.conf;一下是内容
1 #config.conf 2 sharding: 3 clusterRole: configsvr 4 replication: 5 replSetName: config 6 net: 7 bindIp: 127.0.0.1 8 port: 27017 9 storage: 10 dbPath: D:\mongo\data\db 11 systemLog: 12 destination: file 13 path: D:\mongo\log\config.log 14 logAppend: true 15 processManagement: 16 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后可以使用了。