引言
分片(sharding)目的
分片目的是通过分片能够增加更多的机器来应对不断增加负载和数据还不影响应用
分片集群组成
分片一般会有3个组成部分
- 片
片就是保存子集数据的容器,片可是单个的mongod服务(开发和测试用),页可以是副本集(生产用)。所以,即便一片内有多台服务器,也只能有一个主服务器,其他的服务器保存相同的数据 - mongos
mongos 就是MongoDB各版本中都配的路由进程。它路由所有请求,然后将结果聚合。它本身并不存储数据或者配置信息(但会缓存配置服务器的信息) - 配置服务器
配置服务器存储了集群的配置信息:数据和片的对应关系,mongos不永久存放数据,所以需要个地方存放分片配置。它会从配置服务器获取同步数据。
分片架构图
准备工作
以2台临时的云主机模拟集群搭建
主机编号 | 主机类型 | 主机地址 |
---|---|---|
主机A | Shard Server(片服务器) | 123.206.81.79:27020 |
主机B | Shard Server(片服务器) | 123.206.81.79:27021 |
主机C | Shard Server(片服务器) | 123.206.81.79:27022 |
主机D | Config Server(配置服务器) | 47.93.16.117:27023 |
主机F | Config Server(配置服务器) | 47.93.16.117:27024 |
主机G | Route Server(路由服务器) | 47.93.16.117:40000 |
在这里 片服务器不再搭建副本集