Mongodb伪分布式搭建

什么是伪分布式

伪分布式就是假分布式,假就假在只有一台机器而不是多台机器来完成一个任务,但是模拟了分布式的这个过程。

为什么要搭建伪分布式

很多初学分布式数据库的小伙伴肯定都会有这样的烦恼,那就是分布式数据库需要多台电脑才能实现,这样导致学习分布式的成本增高,所以我们这里所说的伪分布式搭建,就是为了解决在一台电脑上模拟出mongodb分布式。让初学的小伙伴们能更好的理解分布式数据库的工作原理和工作效率。

Mongodb分布式结构图

在这里插入图片描述

主文档目录以及自定义端口号

]
这里我设置了三个分片集,一个配置节点和一个路由节点

我自定义端口号为:
shard1 arbiter 10013
shard1 master 10014
shard1 slave1 10002

shard2 arbiter 10003
shard2 master 10004
shard2 slave1 10005

shard3 arbiter 10006
shard3 master 10007
shard3 slave1 10008

config1 10009
config2 10010

mongos1 10011
mongos2 10012

由于shard1中的10001和10002我的电脑上不能启动这两个端口的服务,所以我换为了10013和10014

建立分片集(shard)

什么是分片集及其作用

主要用于保存数据的mongo节点集,由于大数据的数据众多,因此mongos会将同一数据库同一集合的数据分散保存在多个分片集中以保证数据的访问性能和存储量,每个分片集又可以对自己管理的那部分数据生成多个备份,以保证数据的健壮性和安全性
分片集(replica set)由主节点、从节点和裁决节点组成(主节点只有一个,其他节点都可以有多个)主节点用于管理数据和响应mongos请求,从节点为备份节点,用于备份数据,并在主节点宕机时随时候补成为主节点。仲裁节点不存储数据,其作用只是在主节点宕机时决定由哪个从节点候补为主节点

分片集文件内目录结构

在这里插入图片描述

分片集配置说明

dbpath=数据的存放目录
logpath=日志文件的路径
port=mongod服务的端口
shardsvr=是否为分片集节点(true为是)
replSet=节点集唯一标识
logappend=是否以追加的形式书写日志
oplogSize=操作日志的大小
storageEngine=存储引擎

话不多说上图
arbiter节点配置:
在这里插入图片描述
master节点配置:
在这里插入图片描述
slave节点配置:
在这里插入图片描述

建立配置节点(congfig)

congfigs文件目录结构

在这里插入图片描述

congfigs配置说明

dbpath=数据的存放目录
logpath=日志文件的路径
port= mongod服务的端口
configsvr=是否为路由节点集(true为是)
logappend=是否以追加的形式书写日志
oplogSize=操作日志的大小
storageEngine=存储引擎
replSet=节点集唯一标识

配置截图:
在这里插入图片描述

建立路由节点(mongos)

mongos文件目录结构

在这里插入图片描述

mongos配置说明

logpath=日志文件的路径
port= mongos服务的端口
logappend=是否以追加的形式书写日志
configdb=路由节点集的配置(格式为“路由节点集的名字/路由节点集ip:路由节点集端口, 路由节点集ip:路由节点集端口……”)

配置截图:
在这里插入图片描述

配置分布式复制集

编写自启动文件(.bat)

启动服务的时候一个一个启动太费时费力了,所以我们可以些一个自启动文件放在mongodb的bin目录下,需要启动的时候双击即可,附上命令:

#start shard1
start mongod --config E:\mongodb\colony\shard1\arbiter\config
start mongod --config E:\mongodb\colony\shard1\master\config
start mongod --config E:\mongodb\colony\shard1\slave1\config

#start shard2
start mongod --config E:\mongodb\colony\shard2\arbiter\config
start mongod --config E:\mongodb\colony\shard2\master\config
start mongod --config E:\mongodb\colony\shard2\slave1\config

#start shard3
start mongod --config E:\mongodb\colony\shard3\arbiter\config
start mongod --config E:\mongodb\colony\shard3\master\config
start mongod --config E:\mongodb\colony\shard3\slave1\config

#start config
start mongod --config E:\mongodb\colony\configs\config1\config
start mongod --config E:\mongodb\colony\configs\config2\config

#start mongs
start mongos --config E:\mongodb\colony\mongos\mongos1\config
start mongos --config E:\mongodb\colony\mongos\mongos2\config

组合节点分片集各个节点

1.通过cmd进入mongodb的bin目录
在这里插入图片描述

2.全部启动过后进入除仲裁节点以外的任意节点(mongo -port 端口号)

mongo -port 10014

出现如下界面即可
在这里插入图片描述
配置命令

config={_id: 'shard1', members:[
{_id: 0,host:'127.0.0.1:10014',priority:2},{_id:1,host:'127.0.0.1:10002',priority:1},{_id:2,host:'127.0.0.1:10013',arbiterOnly:true}
]}

配置生效

rs.initiate(config)

成功截图:
在这里插入图片描述
其他分片同理

配置节点组合

1.任意进入一个配置集节点(方法与分片一样)
2.组合配置节点

config = {_id : "configs",members : [{_id : 0, host : "127.0.0.1:10009" },{_id : 1, host : "127.0.0.1:10010" }]}

配置生效

 rs.initiate(config)

成功截图:
在这里插入图片描述

路由节点配置

任意进入一个路由节点

添加分片

sh.addShard("shard1/127.0.0.1:10013,127.0.0.1:10014,127.0.0.1:10002")
sh.addShard("shard2/127.0.0.1:10003,127.0.0.1:10004,127.0.0.1:10005")
sh.addShard("shard3/127.0.0.1:10006,127.0.0.1:10007,127.0.0.1:10008")

在这里插入图片描述
查看复制集结构:

sh.status()

在这里插入图片描述
由于里面没有集合,所以描述很简单
至此配置mongodb复制集完成

谢谢观看希望对您有所帮助

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值