MongoDB详解(三)——MongoDB集群

今天继续给大家介绍Linux运维相关知识,本文主要内容是MongoDB集群。

一、MongoDB集群组成

MongoDB集群,由以下三种服务组成。

(一)路由服务

MongoDB的路由服务示意图如下所示:
MongoDB详解(三)——MongoDB集群_第1张图片
在上图中,mongos等同于一个请求分发中心,是数据库集群请求的入口,所有的数据访问请求都需要经过mongos进行协调。mongos会将所有对路由器的访问请求发送到shard服务器上的mongod来进行处理。

(二)分片服务

MongoDB的分片服务架构图如下所示:
MongoDB详解(三)——MongoDB集群_第2张图片
从上图可以看出,分片服务是将一个副本集数据分别存储在不同的shard节点上,这样做的好处有:
1、实现负载均衡
2、提高访问效率
3、增强扩展性

(三)配置服务

MongoDB的配置服务如下所示:
MongoDB详解(三)——MongoDB集群_第3张图片
在上图可以看出,MongoDB有专门的配置节点来存储数据库元信息(包括路由、分片等),而mongos本身只是将这些信息缓存在内存中。因此,在MongoDB启动后,mongos需要到配置服务器中读取这些信息。
注意,配置服务器在MongoDB集群中起到非常重要的作用,如果配置服务器出现故障,可能会导致元数据丢失,因此通常我们会部署多台配置服务器。

二、MongoDB集群架构

总的来看,MongoDB的集群架构如下所示:
MongoDB详解(三)——MongoDB集群_第4张图片
但是,对于客户端而言,其并不了解集群内部的信息,他只需要知道mongos服务器的IP和链接方式,mongos会自动为其响应,并把其请求分发至相应的设备上去处理。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

你可能感兴趣的:(服务器运维,mongodb,linux,nosql,集群,存储)