单机模拟分片为复制集的集群部署
2014-08-18 11:51
405 查看
概述
可使用单个数据服务器作为分片,也可使用复制集作为分片。复制集为具有自动故障恢复功能的主从集群,并且其主从角色可自动变更。
每个复制集包括3种角色:主节点(Master)、从节点(Secondary)、仲裁节点(arbiter)
从节点默认不对外提供读服务(因为主从延迟会导致从从节点上读到脏数据)。
复制集不能容忍一半以上发生故障(为了确保不会发生一个复制集中出现多个主节点的情况)。
部署图
部署过程
Shard1(为1个复制集)
Shard1_ReplicaMember1mongod --port 30001 --logpath cluster/log/Shard1_ReplicaMember1.log --logappend --shardsvr --replSet Shard1 -dbpath cluster/data/Shard1_ReplicaMember1 --directoryperdb --rest
Shard1_ReplicaMember2
mongod --port 30002 --logpath cluster/log/Shard1_ReplicaMember2.log --logappend --shardsvr --replSet Shard1 -dbpath cluster/data/Shard1_ReplicaMember2 --directoryperdb --rest
Shard1_ReplicaMember3
mongod --port 30003 --logpath cluster/log/Shard1_ReplicaMember3.log --logappend --shardsvr --replSet Shard1 -dbpath cluster/data/Shard1_ReplicaMember3 --directoryperdb --rest
Shard2(为1个复制集)
Shard2_ReplicaMember1mongod --port 40001 --logpath cluster/log/Shard2_ReplicaMember1.log --logappend --shardsvr --replSet Shard2 -dbpath cluster/data/Shard2_ReplicaMember1 --directoryperdb --rest
Shard2_ReplicaMember2
mongod --port 40002 --logpath cluster/log/Shard2_ReplicaMember2.log --logappend --shardsvr --replSet Shard2 -dbpath cluster/data/Shard2_ReplicaMember2 --directoryperdb --rest
Shard2_ReplicaMember3
mongod --port 40003 --logpath cluster/log/Shard2_ReplicaMember3.log --logappend --shardsvr --replSet Shard2 -dbpath cluster/data/Shard2_ReplicaMember3 --directoryperdb --rest
ConfigServer
ConfigAmongod --port 20001 --logpath cluster/log/ConfigA.log --logappend --configsvr -dbpath cluster/config_data/ConfigA
ConfigB
mongod --port 20002 --logpath cluster/log/ConfigB.log --logappend --configsvr -dbpath cluster/config_data/ConfigB
RouteServer
先启动mongos --port 10001 --logpath cluster/log/mongos.log --logappend --configdb 127.0.0.1:20001,127.0.0.1:20002
再配置
mongo 127.0.0.1:27017/admin
db.runCommand({ addshard : "Shard1/127.0.0.1:30001",name:"Shard1"})
db.runCommand({ addshard : "Shard2/127.0.0.1:40001",name:"Shard2"})
db.runCommand({ listshards : 1})
db.runCommand({ enablesharding : "test"})
db.runCommand({ shardcollection : "test.c1",key : {_id: 1} })
相关文章推荐
- 单机模拟分片为单机的集群部署
- Centos7搭建RabbitMQ集群及单机多节点部署和rabbitmq理论解析
- windows 下单机部署rabbitmq 集群
- centos7 Redis单机多节点集群部署
- 一张图看懂单机部署+集群部署+热备部署与磁盘阵列(RAID)
- redis单机和集群部署
- redis linux 配置(单机、复制、哨兵、集群)
- hadoop 2.5.1单机安装部署伪集群
- 分布式mongodb集群---sharding(分片)+复制集
- redis单机及集群部署
- codis单机集群部署
- MongoDB 3.2.7 for rhel6.4 副本集-分片集群部署
- Mongodb主从复制 及 副本集+分片集群梳理
- mongodb 在单机上搭建分片集群 详细实战过程
- elasticsearch单机部署和集群部署
- hadoop大集群实施--比较实用的思路(设备选型、是否使用虚拟机、快速部署安装、自动复制节点等)
- Elasticsearch单机双节点集群部署实战
- Windows下ELK环境搭建(单机多节点集群部署)
- zookeeper单机部署伪集群
- redis集群(单机模拟)动态添加、删除节点