在MongoDB中,分片(Sharding)是一种将数据水平分割到多个MongoDB实例(称为分片或Shard)上的技术。分片允许单个MongoDB集群扩展到存储非常大的数据集,而不会受到单个服务器的硬件限制。在分片集群中,配置服务器(Config Server)负责存储集群的元数据和配置信息,而路由服务器(Route Server,通常称为mongos)负责处理客户端请求,并将它们路由到正确的分片上。
OS:win10
MongoDB:4.4.24
伪分布式
分片架构
从图中可以看出,分片集群中主要由三个部分组成,即分片服务器( Shard )、路由服务器
( Mongos )以及配置服务器( Config Server )组成。其中,分片服务器有三个,即 Shard1 、
Shard2 、 Shard3 ;路由服务器有两个,即 Mongos1 和 Mongos2 ;配置服务器有三个,即主、副、副。
主要有如下所述三个主要组件:
Shard: 用于存储实际的数据块,实际生产环境中一个shard server 角色可由几台机器组个一个 replica set(副本集群) 承担,防止主机单点故障【3.6版本后必须配置成副本集群】
Config Server: mongod实例,存储了整个 ClusterMetadata ,其中包括 chunk 信息【3.4版本后必须部署成副本集群】。
Query Routers: 前端路由,客户端由此接入,且让整个集群看上去像单一数据库,前端应用可以透明使用。
部署分片集群
部署shard【副本集群】
部署两个shard分片块,数据存储的地方。
步骤一:环境准备
分片 | 节点 | 端口 | 路径 |
1 | shard11(主) | 4006 |
logpath:D:\shard1\shard11\log |
shard12(从) | 4007 | dbpath:D:\shard1\shard12\data logpath:D:\shard1\shard12\log |
|
2 | shard21(主) | 4008 | dbpath:D:\shard2\shard21\data logpath:D:\shard2\shard21\log |