在windows环境下配置mongoDB集群

在windows环境下配置mongoDB集群

mongodb官网

官网分片文档

首先感谢这次参考的文章:

mongodb搭建高可用分片集群示例-天才卧龙

MongoDB高可用集群搭建示例-lizh

配置中用到端口划分汇总:

(本次配置一共用了2个mongos、3个confiigserver、3个shard)

mongosR1(端口:27019)mongosR2(端口:27029)
configR1(端口:27018)configR2(端口:27028)configR3(端口:27038)
Shard1R1(端口:27011)Shard1R2(端口:27021)Shard1R3(端口:27031)

这是这次配置所需要用到的端口

配置的过程:

1. 新建文件加存放mongodb集群所需配置文件和数据

在这里插入图片描述

2. 在每个config文件夹中新建所需文件

在这里插入图片描述

3. 在 config.conf里编写配置内容
net:
  port: 27018  #config1的端口27018  config2为27028  config3为27038
  bindIp: 0.0.0.0  #允许连接地址,这里统一设置为允许任何ip连接
systemLog:
  destination: file
  logAppend: true
  path: D:\developTool\mongodb\mongoCluster\configR1\log\config.log  #config的日志存储地址,config2和config3修改路径即可
storage:
  dbPath: D:\developTool\mongodb\mongoCluster\configR1\data #config的数据存储地址,config2和config3修改路径即可
  journal:
    enabled: true #数据故障恢复和持久化,肯定是开启
#processManagement:
#  fork: true    #linux下打开此设置,Windows环境下后台启动需要注册服务,
#  pidFilePath: /mongo/config/run/mongod.pid
#副本集名称设置
replication:
  replSetName: configs
#分片集群角色,配置服务器的固定值
sharding:
  clusterRole: configsvr
#这里是集群安全认证配置,首次配置启动集群不打开此配置,先留着,后面再说
#security: 
  #keyFile: 
  #authorization: enabled

4. configR2、R3的配置一样,只是端口和路径进行修改
5. 新建shard文件夹以及目录下的文件

在这里插入图片描述
(shardR1下新建shard1,因为一个shard没有做分片处理,如果后续做分片处理可以新建shard2、3等等)
在这里插入图片描述
(shard1下新建data、log文件以及shard.conf配置文件)

6. 在shard.conf里写配置内容(shardR2和shardR3下的shard1同理配置,修改端口和路径即可)
net:
  port: 27011   #shard1的端口27011 ,shard2端口27021 ,shard2端口27031
  bindIp: 0.0.0.0
systemLog:
  destination: file
  logAppend: true
  path: D:\developTool\mongodb\mongoCluster\shardR1\shard1\log\shard.log #shard1R1的路径,shard1R2和shard1R3做对应修改即可
storage:
  dbPath: D:\developTool\mongodb\mongoCluster\shardR1\shard1\data #shard1R1的路径,shard1R2和shard1R3做对应修改即可
  journal:
    enabled: true
#processManagement:
#  fork: true
#  pidFilePath: /mongo/shard1/run/mongod.pid
replication:
  replSetName: shard1
sharding:
  clusterRole: shardsvr #集群中角色归属

7. 再mongosR1下新建文件以及配置文件

在这里插入图片描述

8. 在mongos.conf里编写配置
systemLog:
  destination: file
  logAppend: true
  path:  D:\developTool\mongodb\mongoCluster\mongosR1\log\mongos.log #mongos没有数据存储地址,只有日志输出地址,mongosR2下做对应的地址调整
# network interfaces
net:
  port: 27019 # mongosR1的端口,mongosR2为27029
  bindIp: 0.0.0.0
setParameter:
  enableLocalhostAuthBypass: false
#注意!此处配置的连接地址为配置服务器config Serve的副本集名称和所在服务器地址以及端口
sharding:
  configDB: configs/127.0.0.1:27018,127.0.0.1:27028,127.0.0.1:27038

9. 启动服务,分片集群启动时一定要按照config server,shard ,mongos的顺序启动

在安装mongodb的bin目录下启动dos命令:

./mongod -f D:\developTool\mongodb\mongoCluster\configR1\config.conf

在这里插入图片描述

(1) 启动完成之后新打开一个dos窗口进入一台configserver
./mongo -host 127.0.0.1  --port 27018
(2) 进入之后在dos界面配置配置器的服务集:
config = {  _id : "configs",   
members : [     
{_id : 0, host : "127.0.0.1:27018" },     
{_id : 1, host : "127.0.0.1:27028" },     
{_id : 2, host : "127.0.0.1:27038" }   
]  }
(3) 初始化副本集:
rs.initiate(config)
(4) 查看副本集状态:
rs.status()

在这里插入图片描述
在这里插入图片描述

(执行完成之后对应data文件下会产生文件)

10.
(1) 在开启三个dos窗口分别启动shardR1的shard1、shardR2的shard1和shardR3的shard1
./mongod -f D:\developTool\mongodb\mongoCluster\shardR1\shard1\shard.conf
./mongod -f D:\developTool\mongodb\mongoCluster\shardR2\shard1\shard.conf
./mongod -f D:\developTool\mongodb\mongoCluster\shardR3\shard1\shard.conf

在这里插入图片描述

(2) 打开新的dos窗口连接shardR1
./mongo --port 27011
(3) 配置shard1的副本集:
config = { _id : "shard1",
members : [ 
{_id : 0, host : "127.0.0.1:27011"},
{_id : 1, host : "127.0.0.1:27021"},
{_id : 2, host : "127.0.0.1:27031"}
] }
(4) 初始化副本集:
rs.initiate(config);

在这里插入图片描述

11.
(1) 分别打开三个新的dos窗口启动前端路由器mongosR1,mongosR2
./mongos -f D:\developTool\mongodb\mongoCluster\mongosR1\mongos.conf
./mongos -f D:\developTool\mongodb\mongoCluster\mongosR2\mongos.conf
(2) 新开一个dos窗口:连接任意一个mongos
./mongo --port 27019
(3) 使用admin库,启用集群分片,创建用户
use admin;

sh.addShard("shard1/127.0.0.1:27011,127.0.0.1:27021,127.0.0.1:27031");

db.createUser( { user: "admin", pwd: "Zaq12wsx", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
(4) 关闭当前mongos 连接,重连如下:
./mongo --port 27019 -u "admin" -p "Zaq12wsx" --authenticationDatabase "admin"

#设置一下chunk的大小:

use config;

#设置块大小为1M是方便实验,不然需要插入海量数据

db.setting.save({"_id":"chunksize","value":1})

#cda配置

use cda;

#启用数据库分片

sh.enableSharding("cda")

#创建集合

db.createCollection("cdaDocLibMongo");

#以" uuid "作哈希索引分片键

db.cdaDocLibMongo.createIndex({"uuid":"hashed"})

#对cdaDocLibMongo集合启用分片

sh.shardCollection( " cda.cdaDocLibMongo", { " uuid " : "hashed" } ) 

# 查看分片情况

sh.status() 

# 查看分片列表,所有分片

db.runCommand({listShards:1})  use config;

# 查询当前块大小

db.settings.find({"_id":"chunksize"})

# 修改块大小

db.settings.save( { _id:"chunksize", value: 64 } );

到此总共开启了8个服务(configserver3 、shard3 、mongos*2)

在这里插入图片描述

启动顺序一定要按照configserver、shard、mongos顺序启动

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在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集群的步骤。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值