1. 集群架构 #
mongos
:提供路由数据库集群请求的入口,所有的请求都通过mongos
进行协调,不需要在应用程序添加一个路由选择器,mongos
自己就是一个请求分发中心,它负责把对应的数据请求转发到对应的shard
服务器上。在生产环境通常有多mongos
作为请求的入口,防止其中一个挂掉所有的mongodb
请求都没有办法操作。config server
:为配置服务器,存储所有数据库元信息(路由、分片)的配置。mongos
本身没有物理存储分片服务器和数据路由信息,只是缓存在内存里,配置服务器则实际存储这些数据。mongos
第一次启动或者关掉重启就会从config server
加载配置信息,以后如果配置服务器信息变化会通知到所有的mongos
更新自己的状态,这样mongos
就能继续准确路由。在生产环境通常有多个config server
配置服务器,因为它存储了分片路由的元数据,防止数据丢失!- shard:分片(
sharding
)是指将数据库拆分,将其分散在不同的机器上的过程。将数据分散到不同的机器上,不需要功能强大的服务器就可以存储更多的数据和处理更大的负载。基本思想就是将集合切成小块,这些块分散到若干片里,每个片只负责总数据的一部分,最后通过一个均衡器来对各个分片进行均衡(数据迁移),从3.6版本开始,每个shard
必须部署为副本集(replica set
)架构。
2. 集群部署规划 #
name |
ip |
mongos |
config server |
shard cluster 1 |
shard cluster 2 |
---|---|---|---|---|---|
node-01 |
127.0.0.1 | 27090 | 27080 | 27117 | 27217 |
node-02 |
127.0.0.1 | 27091 | 27081 | 27118 | 27218 |
node-03 |
127.0.0.1 | 27092 | 27082 | 27119 | 27218 |
config server
配置服务器建议部署为包含3个成员的副本集模式,出于测试目的,您可以创建一个单成员副本集;shard
分片请使用至少包含三个成员的副本集。出于测试目的,您可以创建一个单成员副本集;mongos
没有副本集概念,可以部署1个、2个或多个。
3. 下载安装文件 #
下载文件
-
以
Ubuntu
为例: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-5.0.5.tgz -
其他系统下载:https://www.mon