使用副本集部署后是否可以将分片应用于Mongo DB?

问题描述 投票:0回答:1

我有两个副本集的Mongo DB。是否可以分片这些副本集。

mongodb deployment sharding
1个回答
1
投票

共享是关于在称为分片的服务器之间分发数据。在数据库上启用了分片,但是对集合进行了分片(分片集群可以具有分片和未分片的集合)。副本集可以成为分片群集中的分片。

因此,两个副本集可以成为一个分片群集中的两个分片。尽管如此,您仍然必须在数据库上启用分片并分片想要的集合。

分片群集中的主要组件是:

  • mongos:一个路由器进程,用于将您的应用程序查询路由到适当的分片。
  • 配置服务器:用于维护分片群集的元数据和分片数据的配置服务器;这是一个副本集。
  • 分片:副本集,每个作为分片;这些都有数据库数据。

这些组件需要先配置;分片群集中使用的分片副本集,配置服务器副本集和mongos进程。然后在数据库(副本集)上启用分片。

例如,您有一个名为'receivables'的数据库,在两个副本集之一上具有集合customersinvoices。您选择仅分片客户集合。在对客户集合进行分片时,将根据定义的分片密钥在两个分片之间分配客户数据。定义分片键是分片集合过程的一部分。

实际上,决定哪个字段将成为分片密钥是分片的最重要方面之一。这决定了如何有效:(i)将进行查询,(ii)数据将在各个分片之间平均分配,以及(iii)将来向集群添加分片的扩展。

分片键很重要。集合上的该字段必须是不可变的,并且值也必须是不可变的。集合中的所有文档必须具有分片字段。

如果您已经有一个正在运行的应用程序(带有MongoDB数据库)并计划分片数据库,则需要考虑的重要因素:分片键是什么,它将如何影响当前应用程序(现有查询)。分片不仅涉及在更多服务器之间分配数据,还涉及设计应用程序及其数据的各个方面。

有用的链接:

© www.soinside.com 2019 - 2024. All rights reserved.