4

有没有人对使用托管数据库解决方案(特别是 MongoDB)和 Web 服务器有建议。具体来说:

延迟是否可以接受?如何将 Web 服务器与托管数据库服务器放在一起(通过 Azure 等地理位置)以减少延迟?有没有办法减轻从 Web 服务器呼叫到托管数据库服务器(通过私有 IP 或其他方式)的带宽成本?是否有任何提供软件包的网络托管解决方案(应用程序托管和托管数据库)

4

1 回答 1

3

我只是查看了 MongoHQ - 我看不到指定特定数据中心的方法。即使你可以(也许我错过了那个细节),这些都是 AWS 区域,它们与 Windows Azure 不在同一个数据中心。您必须对哪个 AWS 区域最接近(例如,Windows Azure 的 North Central 数据中心)做出最佳猜测。

如果您想减少带宽/延迟,您可以将 MongoDB 托管在工作角色中,甚至可以在托管您网站的 Web 角色中托管,这将降低每月实例成本。请记住,如果您在 Windows Azure 中托管,则需要准备好进行扩展,因此独立的 MongoDB 数据库是不够的。好吧,您可以将 MongoDB 置于其自己的工作角色中,将数据库存储在云驱动器(在 blob 存储中)以实现持久性,并确保您从未将实例计数提高到超过 1。仅运行一个实例时,您可能会定期中断worker 角色会因安全补丁安装或底层硬件崩溃而重新启动(您将在很短的时间内备份​​,但您有定期的数据库脱机期)。

我在 MongoSV 会议上 [演示了使用 MongoDB 副本集][1]。唯一的问题是您需要 3 个实例来完成此操作。如果您通常运行 3 个 Web 角色实例,则可以搭载这些实例。否则,您需要在一组单独的工作角色中管理此配置。与 MongoHQ 相比,您的每月费用会增加(但您的网络角色和 MongoDB 之间不会收取带宽费用,您的延迟极低,并且您可以轻松地将数据库扩展到 1TB,去超出 MongoHQ 2GB 限制。

还有一件事:如果您有多个使用 MongoDB 的网站,您可以在 Windows Azure 中创建一个 MongoDB 托管服务(如上所述),然后从您的所有网站部署中访问它。这将为您带来规模经济,在您迁移到多租户 MongoDB 数据库时降低成本。

编辑 6/16/2013这是一个非常古老、过时的答案。一些更新:

  • MongoHQ 和 MongoLab 都提供托管的 MongoDB。MongoHQ 在美国东部数据中心提供免费 (512MB) 和共享付费产品。MongoLab 在美国东部和西部数据中心提供免费(500MB 和共享付费)产品。
  • Windows Azure 虚拟机现已投入生产,允许您在任何数据中心轻松部署专用的独立或副本集部署(以及配置 ACL 以实现端点安全)。

编辑2013 年 7 月 15 日MongoLab 现在在生产中提供 8GB 副本集。我在这里写了一篇关于它的博客,其中也有一个指向 MongoLab帖子的链接。

于 2011-02-22T04:11:33.687 回答