MongoDB集群搭建-最简单

目录

前言

一、分片概念

二、搭建集群的步骤

总结


前言

MongoDB分片(Sharding)是一种水平扩展数据库的方法,它允许将数据分散存储在多个服务器上,从而提高数据库的存储容量和处理能力。分片是MongoDB为了应对大数据量和高吞吐量需求而设计的一种分布式架构。


一、分片概念

1.分片键(Shard Key):MongoDB使用分片键来决定数据如何分布在不同的分片上。分片键可以是文档中的一个字段或字段组合,MongoDB会根据分片键的值将数据均匀地分配到各个分片中。

2.分片(Shard):分片是MongoDB集群中的一个组成部分,它是一个独立的MongoDB实例,负责存储一部分数据。每个分片可以包含多个数据块(Chunks),这些数据块是根据分片键的值范围来划分的。

3.配置服务器(Config Servers):配置服务器存储着集群的元数据信息,包括分片的配置信息、数据库和集合的元数据等。配置服务器是集群的控制中心,所有分片和客户端都需要与配置服务器通信来获取必要的信息。

4.查询路由器(Query Routers):查询路由器(也称为mongos)是客户端与MongoDB集群交互的接口。客户端通过查询路由器发送请求,查询路由器会根据分片键将请求路由到相应的分片上,并将结果汇总返回给客户端。

二、搭建集群的步骤

 1.配置config副本集

1.1准备数据存放路径

在mongodb下文件创建shard文件

在shard下创建以下文件

分别在rs0和rs1创建以下文件

2.启动分片服务
配置Shard1分片复制集rs0

打开三个cmd窗口分别输入以下命令:


mongod --dbpath D:\mongodb\shard\rs0\db1 --replSet rs0 --port 1000 --shardsvr
mongod --dbpath D:\mongodb\shard\rs0\db2 --replSet rs0 --port 1001 --shardsvr
mongod --dbpath D:\mongodb\shard\rs0\db3 --replSet rs0 --port 1002 --shardsvr

接着新打开一个cmd窗口输入:

//连接任意节点,配置
mongo --port 1000
conf={
	"_id":"rs0",
	"members":[
		{"_id":0,"host":"localhost:1000"},
		{"_id":1,"host":"localhost:1001"},
		{"_id":2,"host":"localhost:1002"}
	]
}
rs.initiate(conf)

进行上面相同的操作配置Shard2分片复制集rs1

四个cmd窗口:

mongod --dbpath D:\mongodb\shard\rs1\db1 --replSet rs1 --port 2000 --shardsvr
mongod --dbpath D:\mongodb\shard\rs1\db2 --replSet rs1 --port 2001 --shardsvr
mongod --dbpath D:\mongodb\shard\rs1\db3 --replSet rs1 --port 2002 --shardsvr
mongo --port 2000
conf={
	"_id":"rs1",
	"members":[
		{"_id":0,"host":"localhost:2000"},
		{"_id":1,"host":"localhost:2001"},
		{"_id":2,"host":"localhost:2002"}
	]
}
rs.initiate(conf)

3.配置Config Server
四个cmd窗口:

mongod --dbpath D:\mongodb\shard\config\config0 --replSet config --port 3000 --configsvr
mongod --dbpath D:\mongodb\shard\config\config1 --replSet config --port 3001 --configsvr
mongo --port 3000
conf={
	"_id":"config",
	"members":[
		{"_id":0,"host":"localhost:3000"},
		{"_id":1,"host":"localhost:3001"}
	]
}
rs.initiate(conf)

 4.启动mongos路由进程
 

mongos --configdb config/localhost:3000,localhost:3001 --port 4000

 5.连接mongos进程,进行配置(mongos)

mongo --port 4000
查看分片信息
use admin
db.runCommand({"listshards":1})

6.addShard添加分片(mongos) 

use admin
db.runCommand({
	"addShard":"rs0/localhost:1000,localhost:1001,localhost:1002",
	"name":"shard1"
})
db.runCommand({
	"addShard":"rs1/localhost:2000,localhost:2001,localhost:2002",
	"name":"shard2"
})
db.runCommand({"listshards":1})

7 .为数据库启用分片(mongos)

use admin
db.runCommand({"enablesharding":"test"})

 

8.为数据库启用分片(mongos)

use admin
db.runCommand({"enablesharding":"test"})

9.对集合进行分片

use admin
db.runCommand({"shardcollection":"test.students","key":{"_id":1}})

10. 设置chunk大小(mongos)

use admin
sh.startBalancer()
use config
db.settings.save({_id:"chunksize",value:1})
db.settings.find()

这样分片集群就搭建好了。

11.在java中使用mongodb分片集群

 端口号为4000!!!

搭建集群的作用

1.提高性能:通过将数据分散到多个服务器上,可以并行处理更多的查询和写操作,从而提高数据库的性能。

2.扩展存储容量:随着数据量的增加,单个服务器的存储容量可能不足以满足需求。通过分片,可以将数据分散存储在多个服务器上,从而扩展存储容量。

3.提高可用性:分片集群通过数据的副本集(Replica Sets)来实现高可用性。即使某个分片发生故障,其他分片仍然可以提供服务,保证了系统的稳定运行。


总结

以上就是mongodb的集群搭建操作,如有错误,在评论区和我讨论哦,谢谢观看!

  • 20
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要搭建MongoDB集群,你可以选择单机版、副本集群或分片集群。在Java开发中,代码本身没有任何区别,区别只在于application.yml的配置。 首先,对于单机版,你只需要配置一个MongoDB实例即可。配置文件中的uri字段指定连接地址,例如:mongodb://192.168.***.***:27017/testdb。 其次,副本集群是由多个MongoDB实例组成的,并且数据会自动复制到其他实例。配置文件中的uri字段指定多个实例的连接地址,例如:mongodb://192.168.***.***:27027,192.168.***.***:27028,192.168.***.***:27029/testdb。 最后,分片集群是由多个分片组成的,每个分片都包含了数据的子集。配置文件中的uri字段指定多个分片的连接地址,例如:mongodb://192.168.***.***:27071,192.168.***.***:27072,192.168.***.***:27073/testdb。在分片集群中,还需要配置路由服务(mongos)。 在安装MongoDB时,你可以使用提供的安装包和工具包。解压安装包和工具包后,将工具包中的bin目录下的各个可执行文件(如bsondump、mongodump等)复制到MongoDB的安装目录下的bin目录中。 通过以上步骤,你就可以搭建MongoDB集群了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [MongoDB集群搭建](https://blog.csdn.net/qq_55106682/article/details/122135750)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Mongodb集群搭建](https://blog.csdn.net/qq_21333693/article/details/128968829)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不想敲代码的小趴菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值