mongodb 分片集群

别动不动就把问题交给时间来证明,时间懒得理你这个烂摊子。

 

什么是分片集群?

分片集群是 MongoDB 的分布式版本,相较副本集,分片集群数据被均衡的分布在不同分片中, 不仅大幅提升了整个集群的数据容量上限,也将读写的压力分散到不同分片,以解决副本集性能瓶颈的难题。

 

MongoDB 的分片集群由如下三个部分组成

如下

1、Config Servers:配置服务器,本质上是一个 MongoDB 的副本集,负责存储集群的各种元数据和配置,如分片地址、Chunks等。

2、Mongos:路由服务,不存具体数据,从 Config 获取集群配置讲请求转发到特定的分片,并且整合分片结果返回给客户端。

3、Shard:每个分片是整体数据的一部分子集,从MongoDB3.6版本开始,每个Shard必须部署为副本集(replica set)架构。

 

为什么要用分片集群?

1、存储容量受单机限制,即磁盘资源遭遇瓶颈

2、读写能力受单机限制,可能是 CPU、内存或者网卡等资源遭遇瓶颈,导致读写能力无法扩展

 

随着系统数据量以及吞吐量的增长,常见的解决办法有两种:垂直扩展和水平扩展

垂直扩展:通过增加单个服务器的能力来实现,比如磁盘空间、内存容量、CPU 数量等;水平扩展则通过将数据存储到多个服务器上来实现,根据需要添加额外的服务器以增加容量。

类似于 Redis Cluster,MongoDB 也可以通过分片实现水平扩展 。水平扩展这种方式更灵活,可以满足更大数据量的存储需求,支持更高吞吐量。并且,水平扩展所需的整体成本更低,仅仅需要相对较低配置的单机服务器即可,代价是增加了部署的基础设施和维护的复杂性。

 

 

 

 

posted @ 2022-11-22 09:15  方达达  阅读(23)  评论(0编辑  收藏  举报