大数据:mongodb分布式集群架构
一、关于mongodb
 
|   | 
 
二、mongodb分布式应用原理
 
|   | 
 
- 1、shards:一个shard为一组mongod,通常一组为两台,主从或互为主从,这一组mongod中的数据时相同的,具体可见《mongodb分布式之数据复制》。数据分割按有序分割方式,每个分片上的数据为某一范围的数据块,故可支持指定分片的范围查询,这同google的BigTable 
类似。数据块有指定的最大容量,一旦某个数据块的容量增长到最大容量时,这个数据块会切分成为两块;当分片的数据过多时,数据块将被迁移到系统的其他分片中。另外,新的分片加入时,数据块也会迁移。  -  
 - 2、mongos:可以有多个,相当于一个控制中心,负责路由和协调操作,www.linuxidc.com使得集群像一个整体的系统。mongos可以运行在任何一台服务器上,有些选择放在shards服务器上,也有放在client 
服务器上的。mongos启动时需要从config servers上获取基本信息,然后接受client端的请求,路由到shards服务器上,然后整理返回的结果发回给client服务器。  -  
 - 3、config 
server:存储集群的信息,包括分片和块数据信息。主要存储块数据信息,每个config server上都有一份所有块数据信息的拷贝,以保证每台config server上的数据的一致性。  -  
 - 4、shard 
key:为了分割数据集,需要制定分片key的格式,类似于用于索引的key格式,通常由一个或多个字段组成以分发数据,比如:  -  
 - { 
name : 1 }  - { 
_id : 1 }  - { 
lastname : 1, firstname : 1 }  - { 
tag : 1, timestamp : -1 }  -  
 - mongoDB的分片为有序存储(1为升序,-1为降序),shard 
key相邻的数据通常会存在同一台服务  - (数据块)上。 
 

加载中…