有没有人有关于使用托管数据库解决方案(特别是MongoDB)和Web服务器的建议。具体来说:
延迟是否可以接受? 如何将Web服务器与托管数据库服务器共同定位(通过Azure等地理位置)以减少延迟? 有没有办法减轻从Web服务器到托管数据库服务器的呼叫带来的带宽成本(通过私有IP或其他?) 是否有任何网络托管解决方案提供包(应用程序托管和托管数据库)
答案 0 :(得分:3)
我只看了MongoHQ - 我认为无法指定特定的数据中心。即使您可以(可能我错过了这个细节),这些也是AWS区域,它们与Windows Azure不在同一数据中心。您必须最好地猜测哪个AWS区域最接近,例如,Windows Azure的North Central数据中心。
如果您想减少带宽/延迟,您可以以工作者角色托管MongoDB,甚至托管您网站的Web角色,这将减少每月实例成本。请记住,如果您在Windows Azure中托管,则需要准备扩展,因此独立的MongoDB数据库是不够的。好吧,您可以将MongoDB置于其自己的辅助角色中,将您的数据库存储在云驱动器(在blob存储中)以保持持久性,并确保您从未将实例计数提高到1.只运行一个实例,当工作者角色重新启动以进行安全修补程序安装,或者底层硬件崩溃时,您可能会定期中断(您将在很短的时间内备份,但将定期数据库脱机时段)。
我在MongoSV会议上[使用MongoDB replicasets演示] [1]。唯一的问题是你需要3个实例来完成这个任务。如果您通常运行3个Web角色实例,则可以依赖这些实例。否则,您需要在一组单独的辅助角色中管理此配置。与MongoHQ相比,您的每月费用会上涨(但您的网络角色和MongoDB之间不会收取带宽,您的延迟极低,并且您可以轻松地将数据库扩展到1TB,超出MongoHQ 2GB限制。
还有一件事:如果您有几个使用MongoDB的网站,您可以在Windows Azure中创建一个MongoDB托管服务(如上所述),然后从您的所有网站部署中访问它。当您转移到多租户MongoDB数据库时,这将为您提供规模经济,降低成本。
编辑2013年6月16日这是一个非常古老,过时的答案。一些更新:
编辑2013年7月15日 MongoLab现在正在生产8GB副本集。我在博客上写了here,它也有一个链接到MongoLab的post。