同一电脑上配置Mongodb集群

副本集的配置
1.启动
mongod --dbpath D:\DB\Mongodb\data\replset\r1\ 
 --logpath D:\DB\Mongodb\data\replset\r1\replset.log 
 --replSet test --logappend --port 10001
 
mongod --dbpath D:\DB\Mongodb\data\replset\r2\ 
 --logpath D:\DB\Mongodb\data\replset\r2\replset.log 
 --replSet test --logappend --port 10002
 
mongod --dbpath D:\DB\Mongodb\data\replset\r3\ 
 --logpath D:\DB\Mongodb\data\replset\r3\replset.log 
 --replSet test --logappend --port 10003
 
mongod --dbpath D:\DB\Mongodb\data\replset\r4\ 
 --logpath D:\DB\Mongodb\data\replset\r4\replset.log 
 --replSet test --logappend --port 10004


2. 配置
config_test = { _id:"test", 
members:[ {_id:0,host:"127.0.0.1:10001"}, 
 {_id:1,host:"127.0.0.1:10002"}, 
 {_id:2,host:"127.0.0.1:10003"}, 
 {_id:3,host:"127.0.0.1:10004", arbiterOnly:true}
]
 }
rs.initiate(config_test);
执行该命令后,需要等待一些时间(各有不同,根据机器配置)
如果后台配置为完成时连接进去mongo 127.0.0.1:10001, 状态可能是STARTUP2(主节点)
或者是RECOVERING(从节点和仲裁节点), 这个时候只需要等待即可,如果等待很久(超过1小时),
可以考虑重新启动主节点.
如果在从节点想读取数据, 需要在从节点执行db.getMongo().setSlaveOk();
停掉master, 会自动在该副本集中选取一台为主节点, 重新启动master节点,
又会恢复master身份

集群的配置
配置方案:
1、3个分片sharding
2、每一个分片由3个节点构成1主2备的Replica Sets
3、3个配置节点Configsever
4、1个路由节点Mongos
5、提前准备(提前规划和创建好数据文件目录以及日志文件,如果涉及到数据/日志迁移,最好提前想好如何设置)


1. 创建分片和复制集
分片1
mongod --dbpath D:\DB\Mongodb\data\cluster\set1\r1\ --logpath D:\DB\Mongodb\data\cluster\logs\set1\r1\r1.log --logappend --port 10001 --shardsvr --replSet set1 --rest --oplogSize 64
mongod --dbpath D:\DB\Mongodb\data\cluster\set1\r2\ --logpath D:\DB\Mongodb\data\cluster\logs\set1\r2\r2.log --logappend --port 10002 --shardsvr --replSet set1 --rest --oplogSize 64
mongod --dbpath D:\DB\Mongodb\data\cluster\set1\r3\ --logpath D:\DB\Mongodb\data\cluster\logs\set1\r3\r3.log --logappend --port 10003 --shardsvr --replSet set1 --rest --oplogSize 64
连接任意一台mongo 127.0.0.1:10001执行脚本
config = {"_id": "set1","members": [{"_id": 0,"host": "127.0.0.1:10001"},{"_id": 1,"host": "127.0.0.1:10002"},{"_id": 2,"host": "127.0.0.1:10003"}]}
rs.initiate(config);

分片2
mongod --dbpath D:\DB\Mongodb\data\cluster\set2\r1\ --logpath D:\DB\Mongodb\data\cluster\logs\set3\r1\r1.log --logappend --port 20001 --shardsvr --replSet set2 --rest --oplogSize 64
mongod --dbpath D:\DB\Mongodb\data\cluster\set2\r2\ --logpath D:\DB\Mongodb\data\cluster\logs\set3\r2\r2.log --logappend --port 20002 --shardsvr --replSet set2 --rest --oplogSize 64
mongod --dbpath D:\DB\Mongodb\data\cluster\set2\r3\ --logpath D:\DB\Mongodb\data\cluster\logs\set3\r3\r3.log --logappend --port 20003 --shardsvr --replSet set2 --rest --oplogSize 64
连接任意一台mongo 127.0.0.1:20001执行脚本
config = {"_id": "set2","members": [{"_id": 0,"host": "127.0.0.1:20001"},{"_id": 1,"host": "127.0.0.1:20002"},{"_id": 2,"host": "127.0.0.1:20003"}]}
rs.initiate(config);

分片3
mongod --dbpath D:\DB\Mongodb\data\cluster\set3\r1\ --logpath D:\DB\Mongodb\data\cluster\logs\set3\r1\r1.log --logappend --port 30001 --shardsvr --replSet set3 --rest --oplogSize 64
mongod --dbpath D:\DB\Mongodb\data\cluster\set3\r2\ --logpath D:\DB\Mongodb\data\cluster\logs\set3\r2\r2.log --logappend --port 30002 --shardsvr --replSet set3 --rest --oplogSize 64
mongod --dbpath D:\DB\Mongodb\data\cluster\set3\r3\ --logpath D:\DB\Mongodb\data\cluster\logs\set3\r3\r3.log --logappend --port 30003 --shardsvr --replSet set3 --rest --oplogSize 64
连接任意一台mongo 127.0.0.1:30001执行脚本
config = {"_id": "set3","members": [{"_id": 0,"host": "127.0.0.1:30001"},{"_id": 1,"host": "127.0.0.1:30002"},{"_id": 2,"host": "127.0.0.1:30003"}]}
rs.initiate(config);


2. 启动三个配置服务节点Configsvr
mongod --dbpath D:\DB\Mongodb\data\cluster\configsvr\r1\ --logpath D:\DB\Mongodb\data\cluster\logs\configsvr\r1\r1.log --logappend --port 40001 --configsvr --shardsvr

mongod --dbpath D:\DB\Mongodb\data\cluster\configsvr\r2\ --logpath D:\DB\Mongodb\data\cluster\logs\configsvr\r2\r2.log --logappend --port 40002 --configsvr --shardsvr

mongod --dbpath D:\DB\Mongodb\data\cluster\configsvr\r3\ --logpath D:\DB\Mongodb\data\cluster\logs\configsvr\r3\r3.log --logappend --port 40003 --configsvr --shardsvr

3. 启动一个路由节点mongos
mongos --configdb 127.0.0.1:40001,127.0.0.1:40002,127.0.0.1:40003 --logpath D:\DB\Mongodb\data\cluster\logs\mongos\mongos.log --logappend --port 50001

4. 配置分片
连接到该路由节点mongos mongo 127.0.0.1:50001
执行如下命令
db.runCommand({addshard:"set1/127.0.0.1:10001,127.0.0.1:10002,127.0.0.1:10003",name:"ShardSet1"})
db.runCommand({addshard:"set2/127.0.0.1:20001,127.0.0.1:20002,127.0.0.1:20003",name:"ShardSet2"})
db.runCommand({addshard:"set3/127.0.0.1:30001,127.0.0.1:30002,127.0.0.1:30003",name:"ShardSet3"})
配置结束
执行 printShardingStatus()可以查看配置结果
如果看到以下结果则表示配置成功
mongos> printShardingStatus();
--- Sharding Status ---
 sharding version: {
"_id" : 1,
"version" : 3,
"minCompatibleVersion" : 3,
"currentVersion" : 4,
"clusterId" : ObjectId("53070a99c802a74f3c3496f7")
}
 shards:
{  "_id" : "ShardSetA",  "host" : "setA/127.0.0.1:10001,127.0.0.1:10002,
127.0.0.1:10003" }
{  "_id" : "ShardSetB",  "host" : "setB/127.0.0.1:20001,127.0.0.1:20002,
127.0.0.1:20003" }
{  "_id" : "ShardSetC",  "host" : "setC/127.0.0.1:30001,127.0.0.1:30002,
127.0.0.1:30003" }
 databases:
{  "_id" : "admin",  "partitioned" : false,  "primary" : "config" }
{  "_id" : "test",  "partitioned" : false,  "primary" : "ShardSetC" }







  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在Spring Boot应用程序中配置MongoDB集群,需要执行以下步骤: 1. 添加MongoDB驱动程序依赖项:在pom.xml文件中添加以下依赖项: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> ``` 2. 配置MongoDB集群连接:在application.properties或application.yml文件中添加以下属性: ``` spring.data.mongodb.uri=mongodb://host1:port1,host2:port2,host3:port3/databaseName?replicaSet=yourReplicaSetName ``` 其中,host1、host2、host3是MongoDB集群中的主机名,port1、port2、port3是MongoDB端口号,databaseName是要连接的数据库名称,yourReplicaSetName是MongoDB集群的副本名称。 3. 创建MongoDB集群配置类:创建一个MongoDB集群配置类,以便将MongoDB集群连接设置传递给MongoDB客户端。例如: ``` @Configuration public class MongoConfig { @Value("${spring.data.mongodb.uri}") private String mongoUri; @Bean public MongoClient mongoClient() { return MongoClients.create(mongoUri); } @Bean public MongoTemplate mongoTemplate() throws Exception { return new MongoTemplate(mongoClient(), "databaseName"); } } ``` 在这个配置类中,我们注入了MongoDB集群连接URI,并使用它来创建MongoDB客户端和MongoDB模板。 4. 测试MongoDB集群连接:可以编写一个简单的测试类来测试MongoDB集群连接是否正常工作。例如: ``` @SpringBootTest public class MongoClusterTest { @Autowired private MongoTemplate mongoTemplate; @Test public void testMongoTemplate() { mongoTemplate.createCollection("testCollection"); List<String> collections = mongoTemplate.getCollectionNames(); System.out.println(collections); mongoTemplate.dropCollection("testCollection"); } } ``` 这个测试类将创建一个名为“testCollection”的集合,并在控制台上输出所有集合名称。最后,它将删除“testCollection”集合。 以上就是在Spring Boot应用程序中配置MongoDB集群的步骤。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值