MongoDB学习笔记三:MongoDB集群环境搭建
标签(空格分隔): MongoDB
一、集群搭建简介
为什么使用集群架构?
主从:故障转移:无法实现,如果主机宕机,需要关闭slave并且按照master模式启动。无法解决单点故障 无法autofailover 不可以自动主从的切换
为了解决主从的问题,MongoDB3.0之后出现副本集,副本集解决了故障转移的问题,但是一个副本集中的数据是相同的,无法做到海量数据的存储。所以就需要一个架构去解决这个问题。也就是分片式集群。
一个健壮的简单的MongoDB集群的搭建需要十个服务进程(分开搭建需要十台服务器),这里在一台虚拟机上进行搭建。如下图
Router:路由。作用就是转发客户端的请求。
Config Server:配置服务器。用于记录Shard和分片的详细情况。
Shard:分片服务器。真正存储数据的地方。搭建副本集。
分片的两种模式:Range Based Sharding 和 Hash Based Sharding
两者的特点和不同点,参考官方文档。
- Range Based Sharding
- Hash Based Sharding
二、搭建过程
搭建副本集:Shard1【名称:motui】
启动服务./bin/mongod --dbpath /root/mongodb/shard1/rep1/ --port 27017 --journal --replSet motui ./bin/mongod --dbpath /root/mongodb/shard1/rep2/ --port 27018 --journal --replSet motui ./bin/mongod --dbpath /root/mongodb/shard1/rep3/ --port 27019 --journal --replSet motui
链接任意一台mongo :
./bin/mongo --port 27018 use admin var config = { _id:"motui", members:[ {_id:0,host:"192.168.0.167:27019"}, {_id:1,host:"192.168.0.167:27018"}, {_id:2,host:"192.168.0.167:27017"}] } rs.initiate(config);//初始化副本集 rs.slaveOk() //访问从机需要先执行 查看主机:在master执行rs.isMaster(); 查看副本集状态:rs.status(); 添加数据创建库
搭建副本集:Shard2【名称:motui1】
启动服务
./bin/mongod --