参考官方文档:https://docs.mongodb.com/manual/core/sharded-cluster-components/生产配置
在生产群集中,确保数据冗余并确保系统具有高可用性。 对于生产分片群集部署,请考虑以下事项:
- 将Config Server部署为3成员副本集
- 将每个Shard部署为3成员副本集
- 部署一个或多个mongos路由器
副本集分布
尽可能考虑在适合作为灾难恢复位置的站点中部署每个副本集的一个成员。
--多数据中心的问题,一般是2,3数据中心,但是2数据中心如果主中心的多数节点挂掉,可能导致副本集只读。分片数目
分片需要至少两个分片来分配被分片的数据。 如果您计划在不久的将来启用分片,但在部署时不需要,则单个分片的分片群集可能很有用。mongos的数目和分布
部署多个mongos路由器支持高可用性和可扩展性。一种常见的模式是在每个应用程序服务器上放置一个mongos。在每个应用程序服务器上部署一个mongos路由器可以减少应用程序和路由器之间的网络延迟。
或者,您可以在专门的主机上放置mongos路由器。大型的部署受益于此方法,因为它将客户端应用程序服务器的数量与mongos实例的数量分离。这样可以更好地控制mongod实例服务的连接数。
在独享的主机上安装mongos实例允许这些实例使用更大量的内存。内存不会与mongod实例共享。可以使用主分片机器来放置mongos路由器,但要注意内存争用可能会成为大型部署的问题。
您可以在部署中使用mongos路由器的数量没有限制。但是,由于mongos路由器经常与配置服务器通信,因此在增加路由器数量时请密切监视配置服务器性能。如果您发现性能下降,那么限制部署中mongos路由器的数量可能会有所帮助。
![7c24ab27585886f4093cc5e881277e59.png](https://i-blog.csdnimg.cn/blog_migrate/d79ddf0fbbd424b52c2dafa3c5b0e030.jpeg)
测试环境
对于测试和开发,您可以部署具有最少组件数量的分片集群。 这些测试集群具有以下组件:
- 具有一个成员的副本集配置服务器。
- 至少有一个分片作为单成员副本集。
- 一个mongos实例。
![958645195bc048dc91908f8f1be15df9.png](https://i-blog.csdnimg.cn/blog_migrate/9932943d8e74ddbc46ca96cf3ce3191b.jpeg)
----至少2个复制集,一个是config服务器,一个是shard和 mongos服务。shards
分片包含分片群集的分片数据子集。 集群的分片一起保存集群的整个数据集。
在MongoDB3.6之后