Windows下搭建mongodb分片集群

Windows下搭建mongodb分片集群

mongodb版本为3.6.21

mongodb分片

分片是分布式存储的体现,数据存储于不同的复制集,
可以处理更加庞大的数据。

每个分片就是一个复制集,每个分片之间的数据不同,
数据分布于各个分片之间。

分片主要包含有三个组件

shard:实际存储数据的模块;

config-server:存储分片的集群信息;

router-server:前段路由,提供外部访问入口。

它们的关系如下图:
在这里插入图片描述

实例

分片1

创建目录和文件

配置文件

D:\mongoShards\shard1\config\rs1.conf

dbpath=D:\mongoShards\shard1\data\db\rs1
logpath=D:\mongoShards\shard1\log\rs1.log
journal=true
port=10001
replSet=shard1

D:\mongoShards\shard1\config\rs2.conf

dbpath=D:\mongoShards\shard1\data\db\rs2
logpath=D:\mongoShards\shard1\log\rs2.log
journal=true
port=10002
replSet=shard1

数据目录

D:\mongoShards\shard1\data\db\rs1

D:\mongoShards\shard1\data\db\rs2

日志目录

D:\mongoShards\shard1\log

启动节点

节点1

mongod --shardsvr --config D:\mongoShards\shard1\config\rs1.conf

在这里插入图片描述
节点2

mongod --shardsvr --config D:\mongoShards\shard1\config\rs2.conf

在这里插入图片描述

设置

mongo --port 10001
rs.initiate()
rs.add("localhost:10002")

在这里插入图片描述

分片2

创建目录和文件

配置文件

D:\mongoShards\shard2\config\rs1.conf

dbpath=D:\mongoShards\shard2\data\db\rs1
logpath=D:\mongoShards\shard2\log\rs1.log
journal=true
port=20001
replSet=shard2

D:\mongoShards\shard2\config\rs2.conf

dbpath=D:\mongoShards\shard2\data\db\rs2
logpath=D:\mongoShards\shard2\log\rs2.log
journal=true
port=20002
replSet=shard2

数据目录

D:\mongoShards\shard2\data\db\rs1

D:\mongoShards\shard2\data\db\rs2

日志目录

D:\mongoShards\shard2\log

启动节点

节点1

mongod --shardsvr --config D:\mongoShards\shard2\config\rs1.conf

节点2

mongod --shardsvr --config D:\mongoShards\shard2\config\rs2.conf

设置

mongo --port 20001
rs.initiate()
rs.add("localhost:20002")

在这里插入图片描述

configsvr(config-server)

创建目录和文件

配置文件

D:\mongoShards\configsvr\config\config-server1.config

dbpath=D:\mongoShards\configsvr\data\db\server1
logpath=D:\mongoShards\configsvr\log\server1.log
journal=true
port=30001
replSet=config-server

D:\mongoShards\configsvr\config\config-server2.config

dbpath=D:\mongoShards\configsvr\data\db\server2
logpath=D:\mongoShards\configsvr\log\server2.log
journal=true
port=30002
replSet=config-server

数据目录

D:\mongoShards\configsvr\data\db\server1

D:\mongoShards\configsvr\data\db\server2

日志目录

D:\mongoShards\configsvr\log

启动节点

(注意mongod后添加了"–configsvr",标识为配置服务。)

mongod --configsvr --config D:\mongoShards\configsvr\config\config-server1.config
mongod --configsvr --config D:\mongoShards\configsvr\config\config-server2.config

设置

mongo --port 30001
rs.initiate()
rs.add("localhost:30002")

在这里插入图片描述

routersvr(router-server)

创建目录和文件

配置文件

D:\mongoShards\routersvr\config\router-server.config

port=40001
logpath=D:\mongoShards\routersvr\log\server.log

日志目录

D:\mongoShards\routersvr\log

启动(mongos)

(这里的命令为mongos,config-server是上边配置服务复制集的名字。)

mongos --configdb "config-server/localhost:30001,localhost:30002" --config D:\mongoShards\routersvr\config\router-server.config

配置分片

访问router-server

mongo --port 40001

(要在admin库配置)

use admin

添加分片

添加分片1

db.runCommand({addshard:"shard1/localhost:10001,localhost:10002",allowLocal:true})

在这里插入图片描述
添加分片2

db.runCommand({addshard:"shard2/localhost:20001,localhost:20002",allowLocal:true})

在这里插入图片描述

查看分片

(切换到config库)

use config
db.shards.find()

在这里插入图片描述

设置分片

设置数据库分片存储

(切换到admin数据库)

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

在这里插入图片描述

设置集合片键

(根据"_id"的hash进行分片存储)

db.runCommand({"shardcollection":"test.users","key":{"_id":"hashed"}})

在这里插入图片描述

测试分片

插入数据

use test

(users是上边设置集合片键中的"test.users")

db.users.insert({"name": "abc"})

上边insert执行三次,插入三条数据。

db.users.find({})

在这里插入图片描述

查看数据分布情况

db.users.stats()

分片shard1中两条数据
在这里插入图片描述
分片shard2中一条数据
在这里插入图片描述
参考资料:

菜鸟教程MongoDB 分片
bfdnmywindows下mongodb分片设置与集群搭建
小透明的一天windows下mongodb集群搭建

  • 10
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值