哪种 MongoDB 扩展策略(分片、复制)适合并发连接?
Which MongoDB scaling strategy (Sharding, Replication) is suitable for concurrent connections?
考虑
的场景
我有多个 devclouds(开发人员的远程工作场所),它们都是同一台裸机服务器上的虚拟机运行。
过去,他们在 Docker 上使用自己的 MongoDB 容器 运行。因此,MongoDB 个容器的数量可以在 devclouds 中加起来超过 50 个实例。
问题很明显,虽然 50 个实例同时 运行,但实际上只有 5 个人对自己的实例执行 read/write 操作。所以其他 45 运行 个实例浪费了服务器的资源。
我是否应该通过组合一组 MongoDB 实例来仅使用一个 MongoDB 集群,以便每个人都可以仅连接到一个端点(通过内部网络)以避免浪费资源。
我正在考虑分片策略,但问题是,如果一个节点关闭(一个 VM 关闭),可用性(冗余)是否可以?
我对分片和复制还很陌生,期待了解您的解决方案。谢谢
如果每个开发人员都希望完全控制他们的数据库部署,则不能合并这些部署。否则,一个开发人员可以删除部署中的所有数据,等等。
如果每个开发人员都希望访问一个数据库,您可以部署一个为所有开发人员服务的副本集,并为每个开发人员分配一个数据库(通过身份验证)。
MongoDB 意义上的分片(分片集群)在这种情况下并没有真正的帮助,因为应用程序通常使用所有分片。您当然可以通过设置多个副本集来“手动分片”。
考虑
的场景我有多个 devclouds(开发人员的远程工作场所),它们都是同一台裸机服务器上的虚拟机运行。
过去,他们在 Docker 上使用自己的 MongoDB 容器 运行。因此,MongoDB 个容器的数量可以在 devclouds 中加起来超过 50 个实例。
问题很明显,虽然 50 个实例同时 运行,但实际上只有 5 个人对自己的实例执行 read/write 操作。所以其他 45 运行 个实例浪费了服务器的资源。
我是否应该通过组合一组 MongoDB 实例来仅使用一个 MongoDB 集群,以便每个人都可以仅连接到一个端点(通过内部网络)以避免浪费资源。
我正在考虑分片策略,但问题是,如果一个节点关闭(一个 VM 关闭),可用性(冗余)是否可以?
我对分片和复制还很陌生,期待了解您的解决方案。谢谢
如果每个开发人员都希望完全控制他们的数据库部署,则不能合并这些部署。否则,一个开发人员可以删除部署中的所有数据,等等。
如果每个开发人员都希望访问一个数据库,您可以部署一个为所有开发人员服务的副本集,并为每个开发人员分配一个数据库(通过身份验证)。
MongoDB 意义上的分片(分片集群)在这种情况下并没有真正的帮助,因为应用程序通常使用所有分片。您当然可以通过设置多个副本集来“手动分片”。