MongoDB 分片(一)

来源:互联网 发布:易大师软件 编辑:程序博客网 时间:2024/06/05 05:51

分片
分片是指将数据拆分,将其分散存放在不同的机器上的过程。不需要强大的计算机就可以存储更多的数据,处理更大的负载。
MongoDB支持自动分片。允许创建一个包含许多台机器(分片)的集群,将数据子集分散在集群中,每个分片维护着一个数据集合的子集。
复制是让多台服务器都拥有同样的数据副本;而每一个分片都有其他分片拥有的不同的数据子集。

分片可以增加可用RAM,增加可用磁盘空间,减轻单台服务器的负载,处理单个Mongod无法承受的吞吐量。
少量分片的系统与未分片的系统相比,通常延迟更大,吞吐量可能会更小。至少应该创建3个或以上的分片。

mongos(路由服务器)维护一个内容列表,指明每个分片包含哪些数据内容,然后将请求转发给相应的分片。应用程序只需要连接到路由服务器,就可以像使用单机服务器一样进行正常请求。每个分片对请求的响应都会发送给路由服务器,再将所有响应合并一起,返回应用程序。

配置服务器
它是普通的mongod服务器,它不是副本集成员,保存着集群的配置信息:集群中有哪些分片,分片的是哪些集合,以及数据的分布。
配置服务器保存着集群和分片的元数据。
首先建立配置服务器,因为mongos需要从配置服务器获取配置信息,因此配置服务器应该先与mongos进程启动。
根据最新mongodb-3.4版本,在生产环境至少配置3台配置服务器,并且将这三台配置服务器作为副本集,同一个主机上端口号自定义,不同主机可以相同:
配置服务器一:
这里写图片描述
配置服务器二:
这里写图片描述
配置服务器三:
这里写图片描述
其中,–configsvr 并非必选项。指定mongod为新的配置服务器,将mongod的默认监听端口改为27019,默认的数据目录改为/data/configdb而已。但是可以使用–port 和–dbpath 修改这两项配置。

Mongos进程
mongos进程需要知道配置服务器的地址,必须使用–configdb选项,使用 配置副本集 的名字;将端口号自定义,不然报错:
这里写图片描述
默认情况下,mongos运行在27017端口,并不需要指定数据目录–dbpath,因为mongos本身并不保存数据,它会在启动时从配置服务器加载集群数据。

添加分片
将副本集转换为分片。启动副本集各个成员服务器:
这里写图片描述
这里写图片描述
启动mongos,将这些副本集添加到mongos中:(未完待续)

0 0
原创粉丝点击