MongoDB---Sharding分片

来源:互联网 发布:高淇java什么方向 编辑:程序博客网 时间:2024/05/21 10:04

sharding分片技术,是mongodb对海量存储的又一种措施。

简单说明一下sharding的机制。

sharding是由      shard server节点+config节点+route process节点组成。

mongodb的数据分块称为chunk。每个chunk都是collection中一段连续的数据记录,通常尺寸为200MB,超出生成新的。可以通过--chunkSize来指定大小。

 

shard server:真正的数据库节点,用来存储数据,每个shard分片节点可以是一台服务器,也可以是由一组主从集或者副本集组成。

 

config server:为了降一个特定的collection存储在多个sharding server中,需要指定一个shard key(类似索引),shard key决定该条记录属于哪个chunk。config server用来存储所有shard 节点的信息。每个chunk的shard key范围。chunk在各shard的分布,该集群中所有DB和collection的sharding配置。

 

route process:前端路由。会询问config server应该去访问哪一个shard server节点。在连接相应的shard操作。返回给client。

 

这里要说的是,在配置完shard后,实际写的时候 是进入route process节点进行操作。读操作需要进入shard server节点。

 

1.创建shard server节点。下面是2个shard server节点,config节点,route节点的配置文件。

2.创建config 节点。

3.创建route process节点,用mongos。上面2个都是用mongod启动。

4.配置sharding,mongo 127.0.0.1:40000/admin。配置的时候需要进入admin数据库。而且需要进入的是route process节点。

我之前已经加入过了。这里不方便截图。就写一下吧。

首先是db.runCommand({addshard:"IP:PORT"})

在全部加完shard节点后,通过db.runCommand({enablesharding:"test"})将test数据库授权sharding。

最后db.runCommand({shardcollection:"test.bar",key:{_id:1}})将test库下的bar集合设为sharding指定集合。并且需要加入key!这个就是上面说的shard key。

5.接下来我们做个实验,在mongo 40000下面,在test库下创建10万条数据。

6.接着先在40000下,printShardingStatus()查看一下分片的情况。

7.在连接到20000下。查看test.bar的条目,发现有94209条记录。

至此sharding 分片就算是成功了。

0 0
原创粉丝点击