【问题标题】:MongoDB on Azure: VM or Worker role?Azure 上的 MongoDB:VM 还是 Worker 角色?
【发布时间】:2013-04-18 18:29:00
【问题描述】:

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

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

【问题讨论】:

  • 我想实现一个 web api,我的数据库是 mongodb on azure,所以可以通过分享一些有用的资源来指导我,如何从 web api 连接到 mongodb,感谢任何帮助。

标签: .net mongodb azure azure-worker-roles azure-virtual-machine


【解决方案1】:

嗯... MongoDB 更容易在虚拟机中设置,因为您可以完全按照自己的意愿进行配置,而无需处理启动脚本来进行设置。

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

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

关于从 .net 使用 MongoDB 的难易程度:这根本不重要。

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

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

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

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

【讨论】:

  • 自编写此答案以来,作为 .Net 2.0 的 Azure SDK 的一部分,具有更大内存的 VM 现在也可用于 Web 和 Worker 角色
  • @knightpfhor - 很好的收获。我已经编辑了另一个答案,不知何故忘记了这个。固定。
猜你喜欢
  • 1970-01-01
  • 2018-03-03
  • 1970-01-01
  • 2014-12-29
  • 1970-01-01
  • 1970-01-01
  • 2015-04-16
  • 2012-11-05
  • 1970-01-01
相关资源
最近更新 更多