这是一种将海量数据水平扩展的数据库集群系统,数据分表存储在sharding各个节点上,用户通过简单的配置可以完成一个分布式MongoDB集群。MongoDB的数据分块称为chunk,每个chunk都是Collection中一段连续的数据记录,最大尺寸200MB,超出则生成新的数据块。
一.MongoDB中的自动分片
分片就是将集合分成多个小块。在分片前需要运行一个路由进程,名为mongos。这个进程知道知道数据具体的存放分片所以需要连接mongos来发送请求
二.片键
设置分片时,需要从集合中选择一个键,作为拆分数据的依据,称为片键。
三.建立分片
建立一个片,需要以下3种角色:
- 1.Shard Server
是存储实际数据的分片,每个Shard可以是一个MongoDB实例,也可以是一组复制集。建议是复制集,这样可以很好实现auto-failover
- 2.Config Server
存储所有Shard节点的配置信息、每个Chunk的Shard Key范围、Chunk在各个Shard的分布情况、该集群中所有DB和集合的sharding配置信息
- 3.mongos
客户端接入Shard的一个前端路由,mongos回去访问Config Servers需要到哪个Shard上操作,然后再连接Shard,最后返回给客户端。
1.启动Config Server配置服务器
首先要启动配置服务器和mongos。其中配置服务器必须先启动