MongoDB分片群集由以下组件组成:
mongos
充当查询路由器,在客户端应用程序和分片群集之间提供接口。在生产集群中,请确保数据是冗余的,并且您的系统具有高可用性。对于生产分片群集部署,请考虑以下事项:
在可能的情况下,请考虑在适合作为灾难恢复位置的站点中部署每个副本集的一个成员。
注意
在两个数据中心之间分布副本集成员可提供优于单个数据中心的好处。在两个数据中心分布中,
如果可能,请在至少三个数据中心中分配成员。对于配置服务器副本集(CSRS),最佳实践是分布在三个(或更多,取决于成员的数量)中心中。如果第三个数据中心的成本过高,则一种分配可能性是,在公司政策允许的情况下,在两个数据中心之间平均分配数据承载成员,并将剩余成员存储在云中。
分片至少需要两个分片才能分发分片的数据。如果您计划在不久的将来启用分片,但是在部署时不需要,则单个分片集群可能会很有用。
mongos
和分布¶部署多个mongos
路由器可支持高可用性和可扩展性。一种常见的模式是mongos
在每个应用程序服务器上放置一个
。mongos
在每台应用程序服务器上部署一个
路由器可以减少应用程序和路由器之间的网络延迟。
或者,您可以将mongos
路由器放置在专用主机上。大型部署可从此方法中受益,因为它使客户端应用程序服务器的数量与mongos
实例数量脱钩
。这样可以更好地控制mongod
实例服务的连接数。
mongos
在自己的主机上安装实例可以使这些实例使用更多的内存。内存将不会与mongod
实例共享。可以使用主碎片来承载mongos
路由器,但是请注意,在大型部署中,内存争用可能成为问题。
mongos
部署中可以具有的路由器数量没有限制。但是,由于mongos
路由器经常与您的配置服务器通信,因此请在增加路由器数量时密切监视配置服务器的性能。如果发现性能下降,最好限制mongos
部署中的路由器数量
。