切片(切片模式)
Sharding (分片模式)
副本集可以解决主节点故障导致的数据丢失或不可用的问题,但当需要存储大量数据时,副本集机制就束手无策了。副本集中的一台机器可能不足以存储数据,或者群集可能无法提供可接受的读写吞吐量。这需要MongoDB的分片技术,这是MongoDB的另一种集群部署模式。
分片是指将数据拆分并分散存放在不同机器上的过程.有时这个概念是用划分来表达的。将数据分布到不同的机器上,您就可以存储更多的数据并处理更大的负载,而无需强大的大型计算机。
MongoDB支持自动切片,可以让数据库架构对应用不可见,简化系统管理。对于应用程序来说,这就像总是使用一个MongoDB服务器。
MongoDB的分片机制允许创建一个具有多台机器的集群,这将数据子集分散在集群中,每个分片维护数据集的一个子集。与副本集相比,使用集群架构可以使应用程序具有更强大的数据处理能力。
MongoDB片段的集群模式如下图所示:
要构建一个MongoDB分片集群,有三个重要的组件,即分片服务器、配置服务器和路由服务器。
Shard Server(分片服务器)
每个分片服务器都是一个mongod数据库实例,用于存储实际的数据块。整个数据库集合被分成几个块,并存储在不同的Shard Server中。
在实际生产中,分片服务器可以由副本集中的几台机器组成,以防止整个系统由于主节点的单点故障而崩溃。
Config Server(配置服务器)
这是一个独立的mongod进程,保存集群和碎片的元数据,在集群启动之初建立,保存每个碎片包含数据的信息。
Route Server(路由服务器)
这是一个独立的mongos进程,Route Server可以作为集群中的一个路由,客户端访问它,这使得整个集群看起来像一个单独的数据库,并提供了客户端应用程序和碎片化集群之间的接口。
路由服务器本身不保存数据。启动时,它将集群信息从配置服务器加载到缓存中,并将客户端的请求路由到每个分片服务器。在每个碎片服务器返回结果后,它会将其聚合并返回给客户端。
在实际生产环境中,副本集和分片一起使用,可以满足实际应用场景中高可用性和高可扩展性的需求。
高可用 MongoDB 分布式集群架构
在实际的生产环境中,MongoDB的集群架构是分布式的。如下图所示,集群将结合副本集和分片机制,确保生产过程的高可靠性和可扩展性。
从上面的集群可以看出,整个生产集群类似于碎片化的集群架构,由三个重要的组件组成,包括Shard Server、Config Server和Route Server。不同的是,每个组件可以使用多个实例来确保集群的可靠性。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/112509.html