.net - Azure 上的 MongoDB : VM or Worker role?

我有兴趣在 Azure 上托管 mongoDB。我相信对于如何在 Azure 上托管数据库,我有一些选择:虚拟机或辅助角色。每个选项的优点和缺点是什么?更具体地说,每种方法在维护、配置、可扩展性、.net 的易用性和成本方面有何不同。以后切换到其他选项是否容易?

有关我正在创建的内容的一些详细信息(尽管我很想听听基于不同情况的选项的一般优点/缺点):数据库将通过 Azure 网站访问。该网站将是一个 ASP.net MVC Web API 网站休息服务。我预计服务(以及数据库)的流量不会超过每分钟 100 个资源请求,至少在开始时是这样。该数据库将相对较小,在可预见的将来远低于 10,000 条记录。

最佳答案

嗯...MongoDB 在虚拟机中更容易设置,因为您可以按照您想要的方式准确配置事物,而无需处理启动脚本来设置事物。

由于您将在 Azure 网站上拥有您的网站,因此您可以公开公开端点或在网站和虚拟机之间创建虚拟网络(现已支持)。

如果您要部署独立服务器,则虚拟机和辅助角色部署之间的差异并不那么重要。但是......一旦您进入副本集和分片,您就会发现虚拟机更容易使用。如果您想运行 Linux 而不是 Windows,您别无选择,只能使用虚拟机。

关于从 .net 使用 MongoDB 的便捷性:这根本不重要。

扩展方面:您不会经常更改虚拟机大小或虚拟机数量。对于任一设置,VM 大小更改应该具有相同的体验。使用虚拟机横向扩展至更多虚拟机(例如扩展副本集)可能更容易管理,因为您将完全控制每个节点。这在扩展(删除节点)时可能更重要,因为辅助角色实例扩展不允许您指定要删除的实例。

编辑 2015 年 7 月 - 这个答案已有 2 年历史了。我清理了一些东西。快速更新:

  • 虚拟机大小比前面提到的要大得多(高达 448GB 32 核,对于 MongoDB 来说足够了),以及适用于某些虚拟机大小的 SSD 连接存储
  • 除了手动配置之外,新的 Azure 资源管理器还可用于在虚拟机上自动启动集群。

最后一个想法:当您考虑这些选项时,您可能会考虑托管 MongoDB 解决方案,例如 MongoLab 。您可以通过 Azure Store 或直接通过 MongoLab 网站设置免费 (500MB) 或付费数据库。设置只需一分钟...

https://stackoverflow.com/questions/16090511/

相关文章:

mongodb - mongodb 和 mongodb-server 的区别

java - 如何使用 Java Driver 在 MongoDB 中执行全文搜索命令?

python - pymongo 有什么简短的介绍教程吗?

mongodb - MongoDB 的 fsync 是做什么用的?

mongodb - 选择/配置数据库以获得高吞吐量、可靠、一致的写入吞吐量,牺牲延迟

javascript - 在第二次保存操作中未调用子文档的 Mongoose 预保存中间件

java - MongoDB : how to index the keys of a Map

node.js - 使用 node.js、mongoose、gridfs-stream 读取文件

node.js - 从 Mongoose 模型中找到的 native 驱动程序不返回光标

node.js - 用于测试的内存 MongoDB?