MongoDB分片在部署与维护管理中常见的事项总结大全分片在部署与维护管理中常见的事项总结大全
前言前言
分片(sharding)是MongoDB将大型集合分割到不同服务器(或者说集群)上所采用的方法,主要为应对高吞吐量与大数据量的应用
场景提供了方法。
将数据分散到不同的机器上,不需要功能强大的服务器就可以存储更多的数据和处理更大的负载。基本思想就是将集合切成小块,这
些块分散到若干片里,每个片只负责总数据的一部分,最后通过一个均衡器来对各个分片进行均衡(数据迁移)。通过一个名为
mongos的路由进程进行操作,mongos知道数据和片的对应关系(通过配置服务器)。大部分使用场景都是解决磁盘空间的问题,对
于写入有可能会变差(+++里面的说明+++),查询则尽量避免跨分片查询。
使用分片的时机:使用分片的时机:
1,机器的磁盘不够用了。使用分片解决磁盘空间的问题。
2,单个mongod已经不能满足写数据的性能要求。通过分片让写压力分散到各个分片上面,使用分片服务器自身的资源。
3,想把大量数据放到内存里提高性能。和上面一样,通过分片使用分片服务器自身的资源。
和既有的分库分表、分区方案相比,MongoDB的最大区别在于它几乎能自动完成所有事情,只要告诉MongoDB要分配数据,它就能
自动维护数据在不同服务器之间的均衡。
一一. 分片的集群组件分片的集群组件
1.Mongos 【路由】【路由】
作为请求的访问入口,所有的请求都由mongos来路由、分发、合并,这些动作对客户端driver透明,用户连接mongos就像连接
mongod一样使用。Mongos会根据请求类型及shard key将请求路由到对应的Shard。
2.Config Server 【配置服务器】【配置服务器】
存储Sharding Cluster 的所有元数据,所有的元数据都存储在config数据库;
*保存每个分片上的chunk的信息 * 保存chunk上的片键范围。
3. Shard 【分片】【分片】
存储应用数据记录。
二二. 分片优势分片优势
1.对集群进行抽象,让集群对集群进行抽象,让集群“不可见不可见”,分片对应用系统是透明的。,分片对应用系统是透明的。
Mongos是专有路由进程,其会将客户端发来的请求准确无误的路由到集群中的一个或者一组服务器上,同时会把接收到的响应拼装
起来发回到客户端。
2.保证集群总是可读写保证集群总是可读写